]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
[3.11] gh-92228: disable the compiler's 'small exit block inlining' optimization...
authorChristian Heimes <christian@python.org>
Thu, 7 Jul 2022 10:10:32 +0000 (12:10 +0200)
committerGitHub <noreply@github.com>
Thu, 7 Jul 2022 10:10:32 +0000 (03:10 -0700)
commit74c953d396816c0ef3de80276c00d29f79cbf8bf
treefa88ff9c1acdebb30f025525507f71bdf028d7d1
parent3517c138a814a571fab512c489bacafc7a0e3f22
[3.11] gh-92228: disable the compiler's 'small exit block inlining' optimization for blocks that have a line number (GH-94592) (GH-94643)

Inlining of code that corresponds to source code lines, can make it hard to distinguish later between code which is only reachable from except handlers, and that which is reachable in normal control flow. This caused problems with the debugger's jump feature.

This PR turns off the inlining optimisation for code which has line numbers. We still inline things like the implicit "return None"..
(cherry picked from commit bde06e1b8381f140b296a397ddd1deb1c784ff8e)

Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com>
Lib/test/test_dis.py
Lib/test/test_peepholer.py
Lib/test/test_sys_settrace.py
Misc/NEWS.d/next/Core and Builtins/2022-07-06-14-02-26.gh-issue-92228.44Cbly.rst [new file with mode: 0644]
Python/compile.c