1// { dg-do run } 2// Testing exception specifications. 3// Test 3: the bad_exception throw succeeds. 4 5#include <stdlib.h> 6#include <exception> 7 8void my_term () { exit (1); } 9void my_unexp () { throw 42; } 10 11void 12f () throw (std::bad_exception) 13{ 14 throw 'a'; 15} 16 17int main () 18{ 19 std::set_terminate (my_term); 20 std::set_unexpected (my_unexp); 21 22 try 23 { 24 f (); 25 } 26 catch (char) 27 { 28 return 2; 29 } 30 catch (int) 31 { 32 return 3; 33 } 34 catch (std::bad_exception) 35 { 36 return 0; 37 } 38 return 5; 39} 40