In a for loop with multiple variables, the end condition is not respected, 
execution continues past the end 
condition.

The small attached sample code runs fine with -O0 or with gcc-3.3, but fails 
with -O1, -Os, -O2 or -O3 
with gcc-4.0. Execution continues past the end of the loop, resulting in a 
segfault (buffer overflow).

Versions tested include 
gcc version 4.0.1 20050522 (prerelease) (Debian 4.0.0-9)
and 
gcc version 4.0.1 20050701 (prerelease) (Debian 4.0.0-12ubuntu2)

-- 
           Summary: Execution continues past end of for loop end condition
                    with optimisation enabled
           Product: gcc
           Version: 4.0.0
            Status: UNCONFIRMED
          Severity: critical
          Priority: P2
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: matt+gccbugs at ucc dot asn dot au
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22348

Reply via email to