OSDN Git Service

Revert "Fix PR c++/44188"
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.old-deja / g++.eh / rethrow3.C
1 // { dg-do run  }
2 #include <stdio.h>
3 #include <stdlib.h>
4 #include <exception>
5
6 static void
7 eh_terminate ()
8 {
9   printf ("CALLING TERMINATE\n");
10   exit (1);
11 }
12
13 void
14 eh_test (int level)
15 {
16   try
17     {
18       if (level < 2)
19         eh_test (level + 1);
20       else
21         {
22           printf ("%d: Throwing\n", level);
23           throw (level);
24         }
25     }
26   catch (int &x)
27     {
28       printf ("%d: Got level %d\n",
29               level, x);
30
31       if (level > 0)
32         throw;
33     }
34 }
35
36 int main ()
37 {
38   std::set_terminate (&eh_terminate);
39   eh_test (0);
40 }