[Bug c++/40111] New: "for" loop wrong code generation
face dot mitev at gmail dot com
gcc-bugzilla@gcc.gnu.org
Tue May 12 09:36:00 GMT 2009
This for loop
for(unsigned i=object::min(_digits, (int)NATIVE_DIGITS);i<NATIVE_DIGITS;++i)
inside_digit[i]=0;
generates the following incorrect code.
.L182:
.loc 12 59 0
movl -8(%rbp), %eax
movq -24(%rbp), %rdx
mov %eax, %eax
movq $0, (%rdx,%rax,8)
.loc 12 58 0
addl $1, -8(%rbp)
.L181:
cmpl $3, -8(%rbp)
jbe .L182
jmp .L183
This code always runs the body at least once, which, I think is incorrect.
I'm sorry I cannot include a simple test case to reproduce it, but it is very
hard to trigger and trying to isolate it just makes it go away.
--
Summary: "for" loop wrong code generation
Product: gcc
Version: 4.3.2
Status: UNCONFIRMED
Severity: major
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: face dot mitev at gmail dot com
GCC build triplet: x86_64 linux gnu
GCC host triplet: x86_64 linux gnu
GCC target triplet: x86_64 linux gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40111
More information about the Gcc-bugs
mailing list