/* { dg-do compile } */ /* { dg-require-effective-target nonlocal_goto } */ #include jmp_buf env; int a, c, d, e; int bar () { int b = *(long *) 7 == 5 ? : 0; if (a || a > b) longjmp (env, 0); return 1; } void foo () { long f; setjmp (env); for (; d; c++) switch (c) case 0: { f = bar () >> 1; if (e) goto L; if (bar () >> 1) goto L; } L: ; }