From: Matthieu Dartiailh Date: Tue, 21 Feb 2017 13:25:22 +0000 (+0100) Subject: bpo-29607: Fix stack_effect computation for CALL_FUNCTION_EX (#202) X-Git-Tag: v3.7.0a1~1307 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3a9ac827c7c87dffc60c4200323948551bcb6662;p=python bpo-29607: Fix stack_effect computation for CALL_FUNCTION_EX (#202) --- diff --git a/Misc/NEWS b/Misc/NEWS index 0c2122f8ca..4d1cf298ae 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 17fef31482..8bf4ae1c3a 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);