mirror of
https://github.com/python/cpython.git
synced 2025-09-22 16:33:26 +00:00
merge 3.4 (#23048)
This commit is contained in:
commit
7ced53cc63
4 changed files with 19 additions and 6 deletions
|
@ -178,15 +178,16 @@ dis_compound_stmt_str = """\
|
||||||
1 0 LOAD_CONST 0 (0)
|
1 0 LOAD_CONST 0 (0)
|
||||||
3 STORE_NAME 0 (x)
|
3 STORE_NAME 0 (x)
|
||||||
|
|
||||||
2 6 SETUP_LOOP 13 (to 22)
|
2 6 SETUP_LOOP 14 (to 23)
|
||||||
|
|
||||||
3 >> 9 LOAD_NAME 0 (x)
|
3 >> 9 LOAD_NAME 0 (x)
|
||||||
12 LOAD_CONST 1 (1)
|
12 LOAD_CONST 1 (1)
|
||||||
15 INPLACE_ADD
|
15 INPLACE_ADD
|
||||||
16 STORE_NAME 0 (x)
|
16 STORE_NAME 0 (x)
|
||||||
19 JUMP_ABSOLUTE 9
|
19 JUMP_ABSOLUTE 9
|
||||||
>> 22 LOAD_CONST 2 (None)
|
22 POP_BLOCK
|
||||||
25 RETURN_VALUE
|
>> 23 LOAD_CONST 2 (None)
|
||||||
|
26 RETURN_VALUE
|
||||||
"""
|
"""
|
||||||
|
|
||||||
dis_traceback = """\
|
dis_traceback = """\
|
||||||
|
|
|
@ -579,6 +579,15 @@ def jump_in_nested_finally(output):
|
||||||
jump_in_nested_finally.jump = (4, 9)
|
jump_in_nested_finally.jump = (4, 9)
|
||||||
jump_in_nested_finally.output = [2, 9]
|
jump_in_nested_finally.output = [2, 9]
|
||||||
|
|
||||||
|
def jump_infinite_while_loop(output):
|
||||||
|
output.append(1)
|
||||||
|
while 1:
|
||||||
|
output.append(2)
|
||||||
|
output.append(3)
|
||||||
|
|
||||||
|
jump_infinite_while_loop.jump = (3, 4)
|
||||||
|
jump_infinite_while_loop.output = [1, 3]
|
||||||
|
|
||||||
# The second set of 'jump' tests are for things that are not allowed:
|
# The second set of 'jump' tests are for things that are not allowed:
|
||||||
|
|
||||||
def no_jump_too_far_forwards(output):
|
def no_jump_too_far_forwards(output):
|
||||||
|
@ -755,6 +764,8 @@ class JumpTestCase(unittest.TestCase):
|
||||||
self.run_test(jump_to_same_line)
|
self.run_test(jump_to_same_line)
|
||||||
def test_07_jump_in_nested_finally(self):
|
def test_07_jump_in_nested_finally(self):
|
||||||
self.run_test(jump_in_nested_finally)
|
self.run_test(jump_in_nested_finally)
|
||||||
|
def test_jump_infinite_while_loop(self):
|
||||||
|
self.run_test(jump_infinite_while_loop)
|
||||||
def test_08_no_jump_too_far_forwards(self):
|
def test_08_no_jump_too_far_forwards(self):
|
||||||
self.run_test(no_jump_too_far_forwards)
|
self.run_test(no_jump_too_far_forwards)
|
||||||
def test_09_no_jump_too_far_backwards(self):
|
def test_09_no_jump_too_far_backwards(self):
|
||||||
|
|
|
@ -10,6 +10,8 @@ Release date: TBA
|
||||||
Core and Builtins
|
Core and Builtins
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
- Issue #23048: Fix jumping out of an infinite while loop in the pdb.
|
||||||
|
|
||||||
- Issue #20335: bytes constructor now raises TypeError when encoding or errors
|
- Issue #20335: bytes constructor now raises TypeError when encoding or errors
|
||||||
is specified with non-string argument. Based on patch by Renaud Blanch.
|
is specified with non-string argument. Based on patch by Renaud Blanch.
|
||||||
|
|
||||||
|
|
|
@ -2029,10 +2029,9 @@ compiler_while(struct compiler *c, stmt_ty s)
|
||||||
if there is no else clause ?
|
if there is no else clause ?
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (constant == -1) {
|
if (constant == -1)
|
||||||
compiler_use_next_block(c, anchor);
|
compiler_use_next_block(c, anchor);
|
||||||
ADDOP(c, POP_BLOCK);
|
ADDOP(c, POP_BLOCK);
|
||||||
}
|
|
||||||
compiler_pop_fblock(c, LOOP, loop);
|
compiler_pop_fblock(c, LOOP, loop);
|
||||||
if (orelse != NULL) /* what if orelse is just pass? */
|
if (orelse != NULL) /* what if orelse is just pass? */
|
||||||
VISIT_SEQ(c, stmt, s->v.While.orelse);
|
VISIT_SEQ(c, stmt, s->v.While.orelse);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue