[Python-Dev] gcc 4.2 exposes signed integer overflows (original) (raw)

David Hopwood david.nospam.hopwood at blueyonder.co.uk
Sun Aug 27 03🔞37 CEST 2006


Thomas Wouters wrote:

On 8/26/06, David Hopwood <david.nospam.hopwood at blueyonder.co.uk> wrote:

CPython should be fixed anyway. The correct fix is "if (y == -1 && x < 0 && (unsigned long)x == -(unsigned long)x)". Why not just "... && x == LONGMIN"?

Because the intent is to check that x / y does not overflow a long, and x == LONG_MIN would not cause an overflow on 1's complement or sign-magnitude systems.

(CPython has probably only been tested on 2's complement systems anyway, but if we're going to be pedantic about depending only on things in the C standard...)

-- David Hopwood <david.nospam.hopwood at blueyonder.co.uk>



More information about the Python-Dev mailing list