On Tue, Jun 28, 2005 at 12:59:10PM -0400, Morten Welinder wrote:
> > In particular, a very large number of C and C++ programs are written
> > with the assumptions:
> 
> >- signed and unsigned types are modulo, except in loop induction
> > variables where it's bad taste
> 
> Well, as demonstrated by INT_MIN/-1, gcc has NEVER fulfilled such assumptions
> on i86 and, quite likely, neither has or will any other compiler.   The 
> runtime
> penalty would be too big and hurt performance numbers.

I meant "bad taste to rely on that", sorry.  Not that it shouldn't
overflow, but rather that overflowing shouldn't happen in a
well-behaving program and and the compiler is allowed to go and slap
you if it happens.


> What I believe you can find examples of is that the more restricted claim of
> "addition and perhaps subtraction of signed numbers is modulo" is being
> assumed.  That's cheap since (for 2-complement) signed addition is the same
> operation as unsigned addition.

Yes.

  OG.

Reply via email to