http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59413
H.J. Lu <hjl.tools at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |hjl.tools at gmail dot com --- Comment #7 from H.J. Lu <hjl.tools at gmail dot com> --- [hjl@gnu-mic-2 gcc-regression]$ cat pr59413.c 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; } if (a != 7) __builtin_abort (); return 0; } [hjl@gnu-mic-2 gcc-regression]$ /export/project/git/gcc-regression/master/205883/usr/bin/gcc -S pr59413.c -Os -o bad.s [hjl@gnu-mic-2 gcc-regression]$ /export/project/git/gcc-regression/master/205887/usr/bin/gcc -S pr59413.c -Os -o good.s [hjl@gnu-mic-2 gcc-regression]$ diff -up bad.s good.s --- bad.s 2013-12-20 04:38:57.810620352 -0800 +++ good.s 2013-12-20 04:39:12.476337299 -0800 @@ -8,20 +8,9 @@ main: .LFB0: .cfi_startproc - movl b(%rip), %edx - movl $7, %eax -.L2: - incl %eax - cmpl $3, %eax - je .L6 - movl $1, %edx - jmp .L2 -.L6: - pushq %rax - .cfi_def_cfa_offset 16 - movl %edx, b(%rip) - movl $2, a(%rip) - call abort + movl $7, a(%rip) + xorl %eax, %eax + ret .cfi_endproc .LFE0: .size main, .-main @@ -31,5 +20,5 @@ main: .LHOTE0: .comm b,4,4 .comm a,4,4 - .ident "GCC: (GNU) 4.9.0 20131211 (experimental) [trunk revision 205883]" + .ident "GCC: (GNU) 4.9.0 20131211 (experimental) [trunk revision 205887]" .section .note.GNU-stack,"",@progbits [hjl@gnu-mic-2 gcc-regression]$