Home | History | Annotate | Download | only in jni
      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 }
     41