/* PR tree-optimization/49161 */ extern void abort (void); int c; __attribute__((noinline, noclone)) void bar (int x) { if (x != c++) abort (); } __attribute__((noinline, noclone)) void foo (int x) { switch (x) { case 3: goto l1; case 4: goto l2; case 6: goto l3; default: return; } l1: goto l4; l2: goto l4; l3: bar (-1); l4: bar (0); if (x != 4) bar (1); if (x != 3) bar (-1); bar (2); } int main () { foo (3); if (c != 3) abort (); return 0; }