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()6void __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