https://github.com/python/cpython/commit/0d8fec79ca30e67870752c6ad4e299f591271e69
commit: 0d8fec79ca30e67870752c6ad4e299f591271e69
branch: main
author: Irit Katriel <[email protected]>
committer: iritkatriel <[email protected]>
date: 2024-01-11T14:27:41Z
summary:

gh-107901: jump leaving an exception handler doesn't need an eval break check 
(#113943)

files:
A Misc/NEWS.d/next/Core and 
Builtins/2024-01-11-14-03-31.gh-issue-107901.U65IyC.rst
M Lib/test/test_dis.py
M Python/flowgraph.c

diff --git a/Lib/test/test_dis.py b/Lib/test/test_dis.py
index e46ff3d43d16ec..097f05afdf1517 100644
--- a/Lib/test/test_dis.py
+++ b/Lib/test/test_dis.py
@@ -578,11 +578,11 @@ async def _asyncwith(c):
 
 %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
index 00000000000000..5c81b665216f82
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and 
Builtins/2024-01-11-14-03-31.gh-issue-107901.U65IyC.rst 
@@ -0,0 +1 @@
+A jump leaving an exception handler back to normal code no longer checks the 
eval breaker.
diff --git a/Python/flowgraph.c b/Python/flowgraph.c
index 1fcacbce9177ca..dad945761a4a58 100644
--- a/Python/flowgraph.c
+++ b/Python/flowgraph.c
@@ -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;

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]

Reply via email to