diff options
author | Armin Rigo <arigo@tunes.org> | 2005-01-07 18:10:51 (GMT) |
---|---|---|
committer | Armin Rigo <arigo@tunes.org> | 2005-01-07 18:10:51 (GMT) |
commit | 664b43b3f4cbb7a63d5d67117e1d040a286af371 (patch) | |
tree | a571e7e885d6e89ca0dbbbc34593afaedd364e5a /Python/compile.c | |
parent | 5a9fb3c415d1204c7f2c12243ba5d46f5964dcbd (diff) | |
download | cpython-664b43b3f4cbb7a63d5d67117e1d040a286af371.zip cpython-664b43b3f4cbb7a63d5d67117e1d040a286af371.tar.gz cpython-664b43b3f4cbb7a63d5d67117e1d040a286af371.tar.bz2 |
Re-running python with/without the -Qnew flag uses incorrectly optimized
bytecodes from the previously saved .pyc files. Fixed by disabling the static
optimization of BINARY_DIVIDE between two constants.
Diffstat (limited to 'Python/compile.c')
-rw-r--r-- | Python/compile.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/Python/compile.c b/Python/compile.c index 15c8436..545042f 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -468,12 +468,9 @@ fold_binops_on_constants(unsigned char *codestr, PyObject *consts) newconst = PyNumber_Multiply(v, w); break; case BINARY_DIVIDE: - if (!_Py_QnewFlag) { - newconst = PyNumber_Divide(v, w); - break; - } - /* -Qnew is in effect: fall through to - BINARY_TRUE_DIVIDE */ + /* XXX care is needed to fold this operation statically: + the result might depend on the run-time presence of the -Qnew flag */ + return 0; case BINARY_TRUE_DIVIDE: newconst = PyNumber_TrueDivide(v, w); break; |