summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthieu Dartiailh <marul@laposte.net>2017-02-21 13:25:22 (GMT)
committerSerhiy Storchaka <storchaka@gmail.com>2017-02-21 13:25:22 (GMT)
commit3a9ac827c7c87dffc60c4200323948551bcb6662 (patch)
tree6f9c8a4dca11169f3c768eead2c2e133511301ef
parentfb8fe72fc593438f6a0b934c6ff2d9c4aa28673d (diff)
downloadcpython-3a9ac827c7c87dffc60c4200323948551bcb6662.zip
cpython-3a9ac827c7c87dffc60c4200323948551bcb6662.tar.gz
cpython-3a9ac827c7c87dffc60c4200323948551bcb6662.tar.bz2
bpo-29607: Fix stack_effect computation for CALL_FUNCTION_EX (#202)
-rw-r--r--Misc/NEWS3
-rw-r--r--Python/compile.c2
2 files changed, 4 insertions, 1 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index 0c2122f..4d1cf29 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,9 @@ What's New in Python 3.7.0 alpha 1?
Core and Builtins
-----------------
+- bpo-29607: Fix stack_effect computation for CALL_FUNCTION_EX.
+ Patch by Matthieu Dartiailh.
+
- bpo-29602: Fix incorrect handling of signed zeros in complex constructor for
complex subclasses and for inputs having a __complex__ method. Patch
by Serhiy Storchaka.
diff --git a/Python/compile.c b/Python/compile.c
index 17fef31..8bf4ae1 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -1045,7 +1045,7 @@ PyCompile_OpcodeStackEffect(int opcode, int oparg)
case CALL_FUNCTION_KW:
return -oparg-1;
case CALL_FUNCTION_EX:
- return - ((oparg & 0x01) != 0) - ((oparg & 0x02) != 0);
+ return -1 - ((oparg & 0x01) != 0);
case MAKE_FUNCTION:
return -1 - ((oparg & 0x01) != 0) - ((oparg & 0x02) != 0) -
((oparg & 0x04) != 0) - ((oparg & 0x08) != 0);