/* PR tree-optimization/95857 */ /* { dg-do compile } */ /* { dg-options "-O2" } */ /* { dg-require-effective-target label_values } */ struct E { int e; }; int bar (void), baz (void); void qux (void *); void foo (int x) { struct E a = { 0 }; struct E i = { 0 }; qux (&&lab2); if (baz ()) i.e = 1; else a.e = -2; switch (a.e) { case -2: lab1: switch (i.e) { case -3: case 2: if (i.e-- != 2) __builtin_unreachable (); lab2: baz (); goto lab1; case 0: bar (); } break; } }