summaryrefslogtreecommitdiffstats
path: root/Objects
diff options
context:
space:
mode:
authorTim Peters <tim.peters@gmail.com>2006-09-05 02:18:09 (GMT)
committerTim Peters <tim.peters@gmail.com>2006-09-05 02:18:09 (GMT)
commitc10c9d0d6b5a5783001b4eddd309cbd33b060ade (patch)
treec328e30f569f3050d4b1332e67a2fb8a65335106 /Objects
parenta0c95fa4d8f6cdc500e29a390bc7357a74b69572 (diff)
downloadcpython-c10c9d0d6b5a5783001b4eddd309cbd33b060ade.zip
cpython-c10c9d0d6b5a5783001b4eddd309cbd33b060ade.tar.gz
cpython-c10c9d0d6b5a5783001b4eddd309cbd33b060ade.tar.bz2
"Conceptual" merge of rev 51711 from the 2.5 branch.
i_divmod(): As discussed on Python-Dev, changed the overflow checking to live happily with recent gcc optimizations that assume signed integer arithmetic never overflows. This differs from the corresponding change on the 2.5 and 2.4 branches, using a less obscure approach, but one that /may/ tickle platform idiocies in their definitions of LONG_MIN. The 2.4 + 2.5 change avoided introducing a dependence on LONG_MIN, at the cost of substantially goofier code.
Diffstat (limited to 'Objects')
-rw-r--r--Objects/intobject.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/Objects/intobject.c b/Objects/intobject.c
index c7137df..cbca495 100644
--- a/Objects/intobject.c
+++ b/Objects/intobject.c
@@ -565,7 +565,7 @@ i_divmod(register long x, register long y,
return DIVMOD_ERROR;
}
/* (-sys.maxint-1)/-1 is the only overflow case. */
- if (y == -1 && x < 0 && x == -x)
+ if (y == -1 && x == LONG_MIN)
return DIVMOD_OVERFLOW;
xdivy = x / y;
xmody = x - xdivy * y;