/* { dg-do compile } */ /* { dg-options "-O1 -fharden-compares -fno-ipa-pure-const" } */ int baz (void); __attribute__ ((returns_twice)) void bar (void) { } int quux (int y, int z) { return (y || z >= 0) ? y : z; } int foo (int x) { int a = 0, b = x == a; bar (); if (!!baz () < quux (b, a)) ++x; return x; }