Storage for uninitialized objects (PR 24626)
Paul Schlie
schlie@comcast.net
Sun Jan 15 10:49:00 GMT 2006
So following through with this philosophy to its natural conclusion,
all programs which contain reachable non-portable undefined code should
have arbitrary behavior? Or should arbitrary potentially catastrophic
otherwise unexpected behavior only be invoked upon reaching such code?
(or might it actually make substantially more sense for a compiler to
do what the code logically specified in absents of any more reliably
predictable alternative; under the premise that consistency is good.)
> From: Robert Dewar <dewar@adacore.com>
>> Paul Schlie wrote:
>> tools which indiscriminately alter non-portable observable
>> behavior during optimization aren't doing anyone any favors.
>>
> What we want from a compiler is that it correctly executes
> and interprets correct programs. What we want from
> programmers is correct programs. Programmers who
> write undefined junk get undefined behavior. We have
> been through this before (with you if I remember), and
> we won't get any further this time than we did last time.
> Uninitialized variables cause undefined behavior. This
> means the behavior of the program can change every
> time you run it (whether or not you change optimization
> settings).
More information about the Gcc
mailing list