1 /* { dg-do compile } */
2 /* { dg-require-effective-target exceptions } */
3 /* { dg-options "-fexceptions -fgimple -fdump-tree-eh-eh" } */
4 /* { dg-require-effective-target nonlocal_goto } */
5 
foo()6 void __GIMPLE foo()
7 {
8   try
9     {
10       try
11 	{
12 	  extern void might_throw1 ();
13 	  might_throw1 ();
14 	}
15       finally
16 	{
17 	  extern void might_throw2 ();
18 	  might_throw2 ();
19 	}
20       else
21 	{
22 	  extern void might_throw3 ();
23 	  might_throw3 ();
24 	}
25     }
26   finally
27     {
28       extern void might_throw4 ();
29       might_throw4 ();
30     }
31 }
32 
33 /* { dg-final { scan-tree-dump ".LP 1. might_throw1" "eh" } } */
34 /* { dg-final { scan-tree-dump ".LP 2. might_throw2" "eh" } } */
35 /* { dg-final { scan-tree-dump ".LP 2. might_throw3" "eh" } } */
36