Remove old autovect-branch by moving to "dead" directory.
[official-gcc.git] / old-autovect-branch / gcc / testsuite / g++.old-deja / g++.eh / spec3.C
blob6239270ee370fd07ae9d51bd8fe7251b46339edd
1 // { dg-do run  }
2 // Testing exception specifications.
3 // Test 3: the bad_exception throw succeeds.
5 #include <stdlib.h>
6 #include <exception>
8 void my_term ()  { exit (1); }
9 void my_unexp () { throw 42; }
11 void
12 f () throw (std::bad_exception)
14   throw 'a';
17 int main ()
19   std::set_terminate (my_term);
20   std::set_unexpected (my_unexp);
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;