/* PR tree-optimization/58791 */ /* { dg-do run } */ /* { dg-options "-g" } */ #include "../nop.h" __attribute__((noinline, noclone)) int foo (int x, int y) { _Bool a = x != 0; _Bool b = y != 2; _Bool c = a & b; _Bool d = !c; int ret; if (c) { if (y < 3 || y > 4) ret = 1; else ret = 0; } else ret = 0; asm volatile (NOP : : : "memory"); /* { dg-final { gdb-test pr58791-1.c:25 "c & 1" "1" } } */ asm volatile (NOP : : : "memory"); /* { dg-final { gdb-test pr58791-1.c:25 "d & 1" "0" } } */ return ret; } int main () { foo (1, 3); return 0; }