On Mar 6 2013, Russell Brennan wrote:

Perhaps I misunderstand how you are defining failure here... what
would be the failure mode?  Perhaps if you could provide an example of
the ill-effects that could be seen as a result of this behavior it
would clarify the issue?

Generating bad code.  In:

   union {
       double x[10];
       double y;
   } fred, joe;
   fred.y = 0.0;
   joe = fred;
   call alf(fred);

The compiler is permitted to copy only a single double in either of
the last two statements, because the last use was via y.  That liberty
dates from C90, but C99 effective types extended it to many more cases.

If you break the semantic rules of a language, it is common to see no
error until you enable optimisation, whereupon it produces wrong answers
and the average user claims that the optimiser is broken.


Regards,
Nick Maclaren.


Reply via email to