This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: optimization/7726: Fails to produce the correct implementation-dependantoutput for loop optimization under x86 -> optimizes away a loop that shouldcomplete


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]