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.
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 @@
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;