]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.14] gh-140104: Revert "Set next_instr properly in the JIT during exceptions (GH...
authorKen Jin <kenjin@python.org>
Sat, 1 Nov 2025 18:41:01 +0000 (02:41 +0800)
committerGitHub <noreply@github.com>
Sat, 1 Nov 2025 18:41:01 +0000 (18:41 +0000)
Revert "[3.14] gh-140104: Set next_instr properly in the JIT during exceptions (GH-140233) (GH-140687)"

This reverts commit 2e216728038a03d387231f39ded091ec318ba61b.

Lib/test/test_capi/test_opt.py
Misc/NEWS.d/next/Core_and_Builtins/2025-10-16-21-47-00.gh-issue-140104.A8SQIm.rst [deleted file]
Python/ceval_macros.h

index bdcda12c76e1bc523497f091a78b8403685b8143..c74c8ee0eef8e292ed45fc760a2b5f05b165477a 100644 (file)
@@ -1972,27 +1972,6 @@ class TestUopsOptimization(unittest.TestCase):
         assert ex is not None
         """))
 
-    def test_next_instr_for_exception_handler_set(self):
-        # gh-140104: We just want the exception to be caught properly.
-        def f():
-            for i in range(TIER2_THRESHOLD + 3):
-                try:
-                    undefined_variable(i)
-                except Exception:
-                    pass
-
-        f()
-
-    def test_next_instr_for_exception_handler_set_lasts_instr(self):
-        # gh-140104: We just want the exception to be caught properly.
-        def f():
-            a_list = []
-            for _ in range(TIER2_THRESHOLD + 3):
-                try:
-                    a_list[""] = 0
-                except Exception:
-                    pass
-
 
 def global_identity(x):
     return x
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-10-16-21-47-00.gh-issue-140104.A8SQIm.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-10-16-21-47-00.gh-issue-140104.A8SQIm.rst
deleted file mode 100644 (file)
index 1c18cbc..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Fix a bug with exception handling in the JIT. Patch by Ken Jin. Bug reported
-by Daniel Diniz.
index df1950416c2ddd9ae30f4bb42912fd703a1e773e..187ec8fdd265840b7bd571afec66ff559d12f934 100644 (file)
@@ -368,9 +368,7 @@ do {                                                   \
     frame = tstate->current_frame;                     \
     stack_pointer = _PyFrame_GetStackPointer(frame);   \
     if (next_instr == NULL) {                          \
-        /* gh-140104: The exception handler expects frame->instr_ptr
-            to after this_instr, not this_instr! */    \
-        next_instr = frame->instr_ptr + 1;             \
+        next_instr = frame->instr_ptr;                 \
         JUMP_TO_LABEL(error);                          \
     }                                                  \
     DISPATCH();                                        \