------- Comment #54 from dave at hiauly1 dot hia dot nrc dot ca  2006-01-15 
06:46 -------
Subject: Re:  [4.1/4.2 Regression] internal compiler error: verify_flow_info
failed

> FWIW, the part of the C99 standard that talk about uninitialized automatic
> variables are 3.17.2, 6.2.4, 6.7.8 (especially point 10), and 6.8.
> 
> Also see Appendix J2 "Undefined behavior".
> 
> To me, undefined behavior means that GCC could produce code to grow vegetables
> on the south pole or to shoot bunnies to the moon, and still not be wrong ;-) 
> So it can certainly do whatever it pleases with the uninitialized variable
> 'node' in the test case...

I can't see where the value of "node" is "used" other than as
arguments to function calls.  The value of "node" is indeterminate
but it's unclear to me from J2 whether this is sufficient to force
undefined behavior for F2.  HP cc and GCC versions prior to 4.0 
don't use the same storage for "call_result" and "node" in spite of
the fact that "node" is uninitialized.  As a result, we have a
portability issue between GCC 3 and 4.

J2 is informative.  Thus, the leap from indeterminate to undefined
isn't obvious.

Dave


-- 


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

Reply via email to