On Fri, 2006-11-10 at 23:05 -0800, Howard Chu wrote: > Daniel Berlin wrote: > > > > We ask the TBAA analyzer "can a store to a short * touch i. > > In this case, it says "no", because it's not legal. > > > If you know the code is not legal, why don't you abort the compilation > with an error code?
The code is legal but undefined at runtime. There was a defect report to the C standard about undefined code at runtime and rejecting that code and the C standard committee decided it was not a defect. http://std.dkuug.dk/JTC1/SC22/WG14/www/docs/dr_109.html Here is the rational from that Defect report about not rejecting the undefined behavior: A conforming implementation must not fail to translate a strictly conforming program simply because some possible execution of that program would result in undefined behavior. Because foo might never be called, the example given must be successfully translated by a conforming implementation. Thanks, Andrew Pinski