gcc 3.3 / i386 / -O2 question

Robert Dewar dewar@gnat.com
Wed Nov 17 13:08:00 GMT 2004

Joseph S. Myers wrote:
> On Wed, 17 Nov 2004, Steven Bosscher wrote:
>>Remember, "Undefined behavior" is not the same thing as "Unspecified
>>behavior".  In the latter case, perhaps you're right.  Unspecified
>>behavior should be consistent independent of the compiler options
>>(and this behavior should be documented).  But for undefined behavior
>>you shouldn't expect anything.
> No, it's implementation-defined behavior that is documented.  Unspecified 
> behavior has bounds of variation but need not be documented.  For example, 
> in evaluating "x = f() + g()", the order in which f() and g() are 
> evaluated is unspecified and could  vary with compiler options, but their
> evaluation is not interleaved.

Requiring something to be documented does not necessarily constrain
the possible semantics, although the idea here is that it is embarrassing
to have documentation that defines the effect as completely undefined :-)

More information about the Gcc-help mailing list