> 3. The compiler wasn't written by a fanatic who put > the "right shift of negative signed values is > undefined" rule above common sense. > > This is only implementation-defined behavior, not undefined behavior. It is > not permitted to crash the system or launch the missiles. (n1256.pdf 6.5.7 > paragraph 5.) The potential problem with implementation defined is its not guaranteed to produce consistent results. Different compilers or different versions of the same compiler may arrive at different results. In this light, the crash might be welcomed to make it easy to find the trouble spot :)