1// { dg-do run } 2// Test that an exception thrown out of the constructor for the catch 3// parameter (i.e. "after completing evaluation of the expression to be thrown 4// but before the exception is caught") causes us to call terminate. 5 6#include <exception> 7#include <cstdlib> 8 9void my_terminate () 10{ 11 std::exit (0); 12} 13 14struct A 15{ 16 A () {} 17 A (const A&) { throw 1; } 18}; 19 20int main (void) 21{ 22 std::set_terminate (my_terminate); 23 24 try { throw A(); } 25 catch (A) {} 26 return 1; 27} 28