>>>>> "Paul" == Paul Schlie <[EMAIL PROTECTED]> writes:
>> From: Robert Dewar <[EMAIL PROTECTED]>
>>> Paul Schlie wrote:
>>>> What about optimising x*2/2 to x?
>>> Given that "C" requires the above be evaluated as (x*2)/2, as the
>>> language specifies that the syntax defines the precedence of the
>>> operations, and that no optimization should alter the behavior as
>>> specified by the program; I'd say that unless it was known that
>>> the value range of x was between 0 and INT_MAX, the optimization
>>> is simply invalid.
>> the optimization is indeed valid
>>
>> optimizations may most certainly alter behavior of undefined
>> code. think about uninitialized local variables.
Paul> I don't contest that it may, I simply don't believe it should.
In that case you may want to stick with -O0. There are *lots* of
things GCC does that alter undefined cases. How about the undefined
behavior when aliasing rules are violated? Would you want to make
-fno-strict-aliasing be the only supported setting?
paul