mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +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 @@ def bug1333982(x=[]): | |||
|   1           0 LOAD_CONST               0 (0) | ||||
|               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) | ||||
|              12 LOAD_CONST               1 (1) | ||||
|              15 INPLACE_ADD | ||||
|              16 STORE_NAME               0 (x) | ||||
|              19 JUMP_ABSOLUTE            9 | ||||
|         >>   22 LOAD_CONST               2 (None) | ||||
|              25 RETURN_VALUE | ||||
|              22 POP_BLOCK | ||||
|         >>   23 LOAD_CONST               2 (None) | ||||
|              26 RETURN_VALUE | ||||
| """ | ||||
| 
 | ||||
| dis_traceback = """\ | ||||
|  |  | |||
|  | @ -579,6 +579,15 @@ def jump_in_nested_finally(output): | |||
| jump_in_nested_finally.jump = (4, 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: | ||||
| 
 | ||||
| def no_jump_too_far_forwards(output): | ||||
|  | @ -755,6 +764,8 @@ def test_06_jump_to_same_line(self): | |||
|         self.run_test(jump_to_same_line) | ||||
|     def test_07_jump_in_nested_finally(self): | ||||
|         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): | ||||
|         self.run_test(no_jump_too_far_forwards) | ||||
|     def test_09_no_jump_too_far_backwards(self): | ||||
|  |  | |||
|  | @ -10,6 +10,8 @@ Release date: TBA | |||
| 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 | ||||
|   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 (constant == -1) { | ||||
|     if (constant == -1) | ||||
|         compiler_use_next_block(c, anchor); | ||||
|     ADDOP(c, POP_BLOCK); | ||||
|     } | ||||
|     compiler_pop_fblock(c, LOOP, loop); | ||||
|     if (orelse != NULL) /* what if orelse is just pass? */ | ||||
|         VISIT_SEQ(c, stmt, s->v.While.orelse); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Benjamin Peterson
						Benjamin Peterson