summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2003-02-12 16:57:47 (GMT)
committerGuido van Rossum <guido@python.org>2003-02-12 16:57:47 (GMT)
commit66b1259dbc2cf4aaefd779d76c4a83fe8003bafd (patch)
treefb23dcbbc51fa40a706479b01aa5de3a11f61314 /Lib
parente71b9f830b0a3829de799c6b826ea2b4450762c4 (diff)
downloadcpython-66b1259dbc2cf4aaefd779d76c4a83fe8003bafd.zip
cpython-66b1259dbc2cf4aaefd779d76c4a83fe8003bafd.tar.gz
cpython-66b1259dbc2cf4aaefd779d76c4a83fe8003bafd.tar.bz2
SF #660455 : patch by NNorwitz.
"Unsigned" (i.e., positive-looking, but really negative) hex/oct constants with a leading minus sign are once again properly negated. The micro-optimization for negated numeric constants did the wrong thing for such hex/oct constants. The patch avoids the optimization for all hex/oct constants. This needs to be backported to Python 2.2!
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_compile.py15
-rw-r--r--Lib/test/test_grammar.py4
2 files changed, 12 insertions, 7 deletions
diff --git a/Lib/test/test_compile.py b/Lib/test/test_compile.py
index 4b522ac..1fe7f52 100644
--- a/Lib/test/test_compile.py
+++ b/Lib/test/test_compile.py
@@ -133,9 +133,12 @@ expect_same("000000000000007", 7)
expect_same("000000000000008.", 8.)
expect_same("000000000000009.", 9.)
-## # Verify treatment of unary minus on negative numbers SF bug #660455
-## import warnings
-## warnings.filterwarnings("ignore", "hex/oct constants", FutureWarning)
-## # XXX Of course the following test will have to be changed in Python 2.4
-## expect_same("0xffffffff", -1)
-## expect_same("-0xffffffff", 1)
+# Verify treatment of unary minus on negative numbers SF bug #660455
+import warnings
+warnings.filterwarnings("ignore", "hex/oct constants", FutureWarning)
+# XXX Of course the following test will have to be changed in Python 2.4
+# This test is in a <string> so the filterwarnings() can affect it
+exec """
+expect_same("0xffffffff", -1)
+expect_same("-0xffffffff", 1)
+"""
diff --git a/Lib/test/test_grammar.py b/Lib/test/test_grammar.py
index e0667d8..ea0a88c 100644
--- a/Lib/test/test_grammar.py
+++ b/Lib/test/test_grammar.py
@@ -37,7 +37,9 @@ try:
except ImportError:
maxint = 2147483647
if maxint == 2147483647:
- if -2147483647-1 != -020000000000: raise TestFailed, 'max negative int'
+ # The following test will start to fail in Python 2.4;
+ # change the 020000000000 to -020000000000
+ if -2147483647-1 != 020000000000: raise TestFailed, 'max negative int'
# XXX -2147483648
if 037777777777 != -1: raise TestFailed, 'oct -1'
if 0xffffffff != -1: raise TestFailed, 'hex -1'