http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58364
Bug ID: 58364 Summary: likely wrong code bug Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: regehr at cs dot utah.edu CC: chenyang at cs dot utah.edu regehr@john-home ~/z/reduce/r107 $ gcc -O0 small.c ; ./a.out regehr@john-home ~/z/reduce/r107 $ gcc -O1 small.c ; ./a.out x regehr@john-home ~/z/reduce/r107 $ cat small.c int printf(const char *, ...); int x3 (int x4) { return x4 < 0 ? 1 : x4; } int x0 = 1, x1, x2; int main (void) { if (x3(x0 > x2 == (x1 = 0))) { printf("x\n"); } return 0; } regehr@john-home ~/z/reduce/r107 $ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/home/regehr/z/compiler-install/gcc-r202341-install/libexec/gcc/x86_64-unknown-linux-gnu/4.9.0/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: /home/regehr/z/compiler-source/gcc/configure --prefix=/home/regehr/z/compiler-install/gcc-r202341-install --enable-languages=c,c++ --disable-multilib Thread model: posix gcc version 4.9.0 20130906 (experimental) (GCC)