This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: optimization/7726: Fails to produce the correct implementation-dependant output for loop optimization under x86 -> optimizes away a loop that should complete
- From: Carlos O'Donell <carlos at baldric dot uwo dot ca>
- To: bangerth at dealii dot org, gcc-bugs at gcc dot gnu dot org, gcc-prs at gcc dot gnu dot org,nobody at gcc dot gnu dot org, gcc-gnats at gcc dot gnu dot org
- Date: Fri, 6 Dec 2002 16:23:05 -0500
- Subject: Re: optimization/7726: Fails to produce the correct implementation-dependant output for loop optimization under x86 -> optimizes away a loop that should complete
- References: <20021206210131.23753.qmail@sources.redhat.com>
> State-Changed-From-To: open->feedback
> State-Changed-By: bangerth
> State-Changed-When: Fri Dec 6 13:01:29 2002
> State-Changed-Why:
> Hm, the code goes into an endless loop on my system also
> without optimization and with all the compilers I have
> (i.e. gcc2.95, 3.0, 3.2, 3.2.2pre, 3.3pre, and icc7).
> Are you sure that the overflow you are exploiting is
> really defined in ISO C?
Unsigned overflow is defined. It is GCC's inconsistent
implementation-dependant conversion that is causing the problem.
"The comparison is between to signed values that gcc
must convert. This conversion is implementation-dependant.
As such, the implementation-dependant behaviour cannot
be optimized away and must remain consistent across
optimization levels." - Carlos
c.