[EMAIL PROTECTED] (Richard Kenner) writes:

> I found my copy of K&R (Second Edition)....

Robert Dewar <[EMAIL PROTECTED]> writes:

> so in fact the new C standard has changed
> nothing from a definitional point of view,

Wait, though: K&Rv2 is post-C89.  If memory serves, it was C89
that established the rule that signed integer overflow has
undefined behavior whereas unsigned overflow is well-defined.
Naturally K&Rv2 documents this, but if you want to know about
traditional practice the relevant wording should come from K&Rv1,
not v2.

I don't know what K&Rv1 says on the subject, but from other
evidence it's clear that common traditional practice assumes wrapv
semantics.  I just now looked at the implementation of atoi() in
7th Edition Unix, which is about as traditional as it gets.  It
ends as follows:

        while(*p >= '0' && *p <= '9')
                n = n*10 + *p++ - '0';
        return(f? -n: n);

where p is char* and n is int.  This relies on wrapv semantics
when atoi returns INT_MIN.  I'm sure many similar examples can be
found in the V7 sources.


Reply via email to