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
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" } } */