On 09/27/2013 08:57 AM, Vincent Lefevre wrote: > On 2013-09-26 18:30:10 +0100, Andrew Haley wrote: >> On 09/26/2013 06:02 PM, Vincent Lefevre wrote: >>> On 2013-09-26 15:49:05 +0100, Andrew Haley wrote: >>>> On 09/26/2013 09:29 AM, Vincent Lefevre wrote: >>>>> On 2013-09-25 22:29:58 -0400, James K. Lowden wrote: >>>>>> You mean that a naïve rendering of the source code implies an overflow >>>>>> where none might exist in the actual emitted object code. And, >>>>>> presumably, the converse: that even if the source is written such that >>>>>> there logically can't be an overflow, the compiler might render object >>>>>> code that does. >>>>> >>>>> The converse is forbidden. >>>> >>>> You'll find it hard to justify that by any language in the standard. >>> >>> What do you mean? >> >> There is no reason why a compiler should not generate an overflow >> where none is written in the program, as long as it doesn't generate >> a different result. > > OK, I wouldn't call that an overflow, then. As far as the processor is concerned, what sets the overflow flag is an overflow. That's the context of this discussion. > I thought you meant rewrite the code in an intermediate step, > generating an overflow, before knowing the consequences at the > target level. The term "overflow" has a connotation of exception / > undefined behavior. Sure. No disagreement there. Andrew.