1 /* { dg-do compile } */ 2 /* { dg-options "-O2 -Wall" } */ 3 /* { dg-require-effective-target nonlocal_goto } */ 4 5 #include <setjmp.h> 6 7 jmp_buf *alloc_jmp_buf (); 8 int foo (void *); 9 10 int test(int op,int noside)11test (int op, int noside) 12 { 13 void *argvec = 0; 14 15 if (op) 16 { 17 jmp_buf *buf = alloc_jmp_buf (); /* { dg-bogus "uninitialized" } */ 18 setjmp (*buf); 19 20 if (noside) 21 goto nosideret; 22 23 do_call_it: 24 25 if (noside) 26 goto nosideret; 27 28 return foo (argvec); 29 } 30 31 argvec = __builtin_alloca (1); 32 goto do_call_it; 33 34 nosideret: 35 return 1; 36 } 37 38