------- Comment #3 from jakub at gcc dot gnu dot org 2010-07-08 10:01 ------- Updated testcase:
extern void abort (void); int a = 3; int b = 1; __attribute__((noinline)) long long foo (int x, int y) { return x / y; } __attribute__((noinline)) int bar (void) { int c = 2; c &= foo (1, b) > b; b = (a != 0) | c; return c; } int main (void) { if (bar () != 0 || b != 1) abort (); return 0; } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44858