From 664b43b3f4cbb7a63d5d67117e1d040a286af371 Mon Sep 17 00:00:00 2001 From: Armin Rigo Date: Fri, 7 Jan 2005 18:10:51 +0000 Subject: 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. --- Python/compile.c | 9 +++------ 1 file 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; -- cgit v0.12