http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59413
--- Comment #3 from Zhendong Su <su at cs dot ucdavis.edu> --- (In reply to Jakub Jelinek from comment #2) > I couldn't reproduce this either, neither -m32/-m64 helps, tried also > r205733 and various other snapshots, everything prints 7. I rebuilt r205734 with the same config configure --prefix=/usr/local/gcc-trunk --enable-languages=c,c++ --disable-werror --enable-multilib and make bootstrap-lean It still fails for me at -Os: $ ./gcc -Os small.c; a.out 2 $ cat small.c int printf (const char *, ...); typedef unsigned int uint32_t; uint32_t a; int b; int main () { uint32_t c; for (a = 7; a <= 1; a++) { char d = a; c = d; b = a == c; } printf ("%d\n", a); return 0; }