]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-107901: jump leaving an exception handler doesn't need an eval break check (#113943)
authorIrit Katriel <1055913+iritkatriel@users.noreply.github.com>
Thu, 11 Jan 2024 14:27:41 +0000 (14:27 +0000)
committerGitHub <noreply@github.com>
Thu, 11 Jan 2024 14:27:41 +0000 (14:27 +0000)
Lib/test/test_dis.py
Misc/NEWS.d/next/Core and Builtins/2024-01-11-14-03-31.gh-issue-107901.U65IyC.rst [new file with mode: 0644]
Python/flowgraph.c

index e46ff3d43d16ec8dcc5de63766302bfc453aab73..097f05afdf15176a43eb9ab3425e9414855036d7 100644 (file)
@@ -578,11 +578,11 @@ dis_asyncwith = """\
 
 %4d   L12:     CLEANUP_THROW
 
-  --   L13:     JUMP_BACKWARD           26 (to L5)
+  --   L13:     JUMP_BACKWARD_NO_INTERRUPT 25 (to L5)
 
 %4d   L14:     CLEANUP_THROW
 
-  --   L15:     JUMP_BACKWARD           11 (to L11)
+  --   L15:     JUMP_BACKWARD_NO_INTERRUPT 9 (to L11)
 
 %4d   L16:     PUSH_EXC_INFO
                 WITH_EXCEPT_START
diff --git a/Misc/NEWS.d/next/Core and Builtins/2024-01-11-14-03-31.gh-issue-107901.U65IyC.rst b/Misc/NEWS.d/next/Core and Builtins/2024-01-11-14-03-31.gh-issue-107901.U65IyC.rst
new file mode 100644 (file)
index 0000000..5c81b66
--- /dev/null
@@ -0,0 +1 @@
+A jump leaving an exception handler back to normal code no longer checks the eval breaker.
index 1fcacbce9177ca6ab4c6bf80fafab954530ea007..dad945761a4a587b0044012d8472af8430a116dd 100644 (file)
@@ -2164,7 +2164,7 @@ push_cold_blocks_to_end(cfg_builder *g) {
             if (!IS_LABEL(b->b_next->b_label)) {
                 b->b_next->b_label.id = next_lbl++;
             }
-            basicblock_addop(explicit_jump, JUMP, b->b_next->b_label.id, NO_LOCATION);
+            basicblock_addop(explicit_jump, JUMP_NO_INTERRUPT, b->b_next->b_label.id, NO_LOCATION);
             explicit_jump->b_cold = 1;
             explicit_jump->b_next = b->b_next;
             b->b_next = explicit_jump;