summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Dickinson <dickinsm@gmail.com>2010-01-16 18:06:17 (GMT)
committerMark Dickinson <dickinsm@gmail.com>2010-01-16 18:06:17 (GMT)
commit18a818bc63d993c3d3433f69cf2b7d2b9bd63ebf (patch)
tree15e0eb9d83ae7a9aaad84496108efe6a28d9421a
parent811ff822f8cd87cf29867118cb3a74c5035a1a94 (diff)
downloadcpython-18a818bc63d993c3d3433f69cf2b7d2b9bd63ebf.zip
cpython-18a818bc63d993c3d3433f69cf2b7d2b9bd63ebf.tar.gz
cpython-18a818bc63d993c3d3433f69cf2b7d2b9bd63ebf.tar.bz2
Fix multiple uses of variable 'L' in _Py_dg_strtod, where one use requires an unsigned long and the other a signed long. See also r77421.
-rw-r--r--Python/dtoa.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/Python/dtoa.c b/Python/dtoa.c
index aa577f2..9eb8cdb 100644
--- a/Python/dtoa.c
+++ b/Python/dtoa.c
@@ -1345,7 +1345,8 @@ _Py_dg_strtod(const char *s00, char **se)
const char *s, *s0, *s1;
double aadj, aadj1;
U aadj2, adj, rv, rv0;
- ULong y, z, L;
+ ULong y, z, abse;
+ Long L;
BCinfo bc;
Bigint *bb, *bb1, *bd, *bd0, *bs, *delta;
@@ -1425,17 +1426,17 @@ _Py_dg_strtod(const char *s00, char **se)
while(c == '0')
c = *++s;
if (c > '0' && c <= '9') {
- L = c - '0';
+ abse = c - '0';
s1 = s;
while((c = *++s) >= '0' && c <= '9')
- L = 10*L + c - '0';
- if (s - s1 > 8 || L > MAX_ABS_EXP)
+ abse = 10*abse + c - '0';
+ if (s - s1 > 8 || abse > MAX_ABS_EXP)
/* Avoid confusion from exponents
* so large that e might overflow.
*/
e = (int)MAX_ABS_EXP; /* safe for 16 bit ints */
else
- e = (int)L;
+ e = (int)abse;
if (esign)
e = -e;
}