1 /* { dg-do compile } */
2 /* { dg-require-effective-target nonlocal_goto } */
3 
4 #include <setjmp.h>
5 
6 jmp_buf env;
7 
8 int a, c, d, e;
9 
10 int
bar()11 bar ()
12 {
13   int b = *(long *) 7 == 5 ? : 0;
14   if (a || a > b)
15     longjmp (env, 0);
16   return 1;
17 }
18 
19 void
foo()20 foo ()
21 {
22   long f;
23   setjmp (env);
24   for (; d; c++)
25     switch (c)
26 case 0:
27       {
28 	f = bar () >> 1;
29 	if (e)
30 	  goto L;
31 	if (bar () >> 1)
32 	  goto L;
33       }
34 L:
35     ;
36 }
37