mirror of
https://github.com/python/cpython.git
synced 2025-07-19 09:15:34 +00:00
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!
This commit is contained in:
parent
e71b9f830b
commit
66b1259dbc
3 changed files with 14 additions and 8 deletions
|
@ -2069,7 +2069,8 @@ com_factor(struct compiling *c, node *n)
|
|||
&& NCH(ppower) == 1
|
||||
&& TYPE((patom = CHILD(ppower, 0))) == atom
|
||||
&& TYPE((pnum = CHILD(patom, 0))) == NUMBER
|
||||
&& !(childtype == MINUS && is_float_zero(STR(pnum)))) {
|
||||
&& !(childtype == MINUS &&
|
||||
(STR(pnum)[0] == '0' || is_float_zero(STR(pnum))))) {
|
||||
if (childtype == TILDE) {
|
||||
com_invert_constant(c, pnum);
|
||||
return;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue