From: Brandt Bucher Date: Wed, 30 Apr 2025 00:21:14 +0000 (-0700) Subject: GH-125515: Mark code after "return" as unreachable in the cases generator (#133178) X-Git-Tag: v3.14.0b1~182 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b329096cfbebb60e0f5c3ea0a300f650d2004200;p=thirdparty%2FPython%2Fcpython.git GH-125515: Mark code after "return" as unreachable in the cases generator (#133178) Mark code after "return" as unreachable --- diff --git a/Python/generated_cases.c.h b/Python/generated_cases.c.h index 7d3e6c7cbc9e..88ab86a774f0 100644 --- a/Python/generated_cases.c.h +++ b/Python/generated_cases.c.h @@ -7464,9 +7464,6 @@ PyObject *result = PyStackRef_AsPyObjectSteal(retval); LLTRACE_RESUME_FRAME(); return result; - stack_pointer += -1; - assert(WITHIN_STACK_BOUNDS()); - DISPATCH(); } TARGET(IS_OP) { diff --git a/Tools/cases_generator/generators_common.py b/Tools/cases_generator/generators_common.py index 9ba0767cba35..9d87dc33f269 100644 --- a/Tools/cases_generator/generators_common.py +++ b/Tools/cases_generator/generators_common.py @@ -492,6 +492,11 @@ class Emitter: label_tkn = next(tkn_iter) self.goto_label(tkn, label_tkn, storage) reachable = False + elif tkn.kind == "RETURN": + self.emit(tkn) + semicolon = emit_to(self.out, tkn_iter, "SEMI") + self.emit(semicolon) + reachable = False elif tkn.kind == "IDENTIFIER": if tkn.text in self._replacers: if not self._replacers[tkn.text](tkn, tkn_iter, uop, storage, inst):