Ian Lance Taylor wrote:
Paul Schlie <[EMAIL PROTECTED]> writes:
As a simple example, although x may be indeterminate -1 < sin(x) < +1
is unconditionally true, as must be tan(x) = sin(x)/cos(x), and x^x = 0;
No, the ISO C standard is clear that an uninitialized variable may be
set to a trap representation (6.7.8, 3.17.2). So in this case x might
be a signalling NaN, and executing sin (x) might well terminate the
program with a floating point exception. That would be a valid
translation of the program by the compiler, and would even be
reasonable and appropriate in a non-optimized compilation.
And most importantly, you might get the trap one time and not another, you
cannot expect consistency if you have uninitialized variables.