This is the mail archive of the
gcc-prs@gcc.gnu.org
mailing list for the GCC project.
Re: optimization/7726: Fails to produce the correct implementation-dependantoutput for loop optimization under x86 -> optimizes away a loop that shouldcomplete
- From: Segher Boessenkool <segher at koffie dot nl>
- To: nobody at gcc dot gnu dot org
- Cc: gcc-prs at gcc dot gnu dot org,
- Date: 30 Dec 2002 03:16:00 -0000
- Subject: Re: optimization/7726: Fails to produce the correct implementation-dependantoutput for loop optimization under x86 -> optimizes away a loop that shouldcomplete
- Reply-to: Segher Boessenkool <segher at koffie dot nl>
The following reply was made to PR optimization/7726; it has been noted by GNATS.
From: Segher Boessenkool <segher@koffie.nl>
To: Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>
Cc: bangerth@dealii.org, carlos@baldric.uwo.ca, gcc-bugs@gcc.gnu.org,
gcc-prs@gcc.gnu.org, nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org
Subject: Re: optimization/7726: Fails to produce the correct
implementation-dependantoutput for loop optimization under x86 ->
optimizes away a loop that shouldcomplete
Date: Sun, 29 Dec 2002 13:22:39 +0100
Falk Hueffner wrote:
>
> On 6 Dec 2002 bangerth@dealii.org wrote:
>
> > 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?
>
> Reading the value of a union member other than the last one stored into is
> undefined (at least in C99),
Implementation defined, actually...
> so it could be easily argued that this is not
> a bug. However, gcc seems to support this in some other places (see the
> info entry about aliasing). So IMHO this should either be "fixed", or it
> should be documented exactly which union type punning tricks are OK.
...and implementation defined bahaviour should be documented. And it is,
even: there is some discussion of this in the manual, under "-fstrict-aliasing",
stating that with GCC, type-punning via unions is explicitly allowed.
Segher