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)11 test (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