/* PR tree-optimization/78482 */ /* { dg-do run } */ short a = 65531; int b = 3, f; signed char c, d; static void fn1(int p1) { short e; b = f; if (f > p1 && p1) L: for (e = 0; 0;) ; else if (d) b = 0 >= b; for (; e <= 3; e++) { if (b) continue; b = 3; goto L; } } __attribute__((noinline, noclone)) int bar (const char *x, int y) { asm volatile ("" : "+g" (x), "+g" (y) : : "memory"); if (y == 2) __builtin_abort (); return 0; } int main() { for (; c >= 0; c--) { if (!b) { bar("%d\n", 2); continue; } fn1(a); } return 0; }