> Still, in practical terms, it is true that overflow > being undefined is unpleasant. In Ada terms, it would > have seemed better in the C standard to reign in the > effect of overflow, for instance, merely saying that > the result is an implementation defined value of the > type, or the program is terminated. Any other outcome > seems unreasonable, and in practice unlikely.
My feeling is that GCC, even in its most agressive mode, should treat overflow as implementation dependent. I don't think that there's any optimization that depends on it being undefined in the "full sense".