bpo-44616: Mark all clean up instructions at end of named exception block as artificial (GH-27109)

This commit is contained in:
Mark Shannon 2021-07-14 10:08:38 +01:00 committed by GitHub
parent f572cbf1fa
commit e5862f79c1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 27 additions and 5 deletions

View file

@ -3312,11 +3312,11 @@ compiler_try_except(struct compiler *c, stmt_ty s)
/* second # body */
VISIT_SEQ(c, stmt, handler->v.ExceptHandler.body);
compiler_pop_fblock(c, HANDLER_CLEANUP, cleanup_body);
/* name = None; del name; # Mark as artificial */
UNSET_LOC(c);
ADDOP(c, POP_BLOCK);
ADDOP(c, POP_BLOCK);
ADDOP(c, POP_EXCEPT);
/* name = None; del name; # Mark as artificial */
UNSET_LOC(c);
ADDOP_LOAD_CONST(c, Py_None);
compiler_nameop(c, handler->v.ExceptHandler.name, Store);
compiler_nameop(c, handler->v.ExceptHandler.name, Del);
@ -3348,7 +3348,6 @@ compiler_try_except(struct compiler *c, stmt_ty s)
return 0;
VISIT_SEQ(c, stmt, handler->v.ExceptHandler.body);
compiler_pop_fblock(c, HANDLER_CLEANUP, cleanup_body);
/* name = None; del name; # Mark as artificial */
UNSET_LOC(c);
ADDOP(c, POP_BLOCK);
ADDOP(c, POP_EXCEPT);

View file

@ -1403,8 +1403,8 @@ const unsigned char _Py_M__zipimport[] = {
23,35,13,20,20,29,30,34,30,42,44,53,20,54,13,17,
20,24,13,17,16,26,13,54,17,39,28,43,44,48,50,57,
59,67,69,77,79,83,28,84,21,25,21,25,0,0,17,39,
24,35,17,39,17,39,17,39,17,39,36,39,21,33,21,39,
21,39,21,39,21,39,21,39,0,0,0,0,0,0,0,0,
24,35,17,39,17,39,17,39,17,39,36,39,21,33,21,33,
21,33,21,33,21,33,21,33,0,0,0,0,0,0,0,0,
0,0,24,39,40,47,49,53,24,54,17,21,16,20,24,28,
16,28,13,25,17,25,23,32,33,34,23,35,13,20,20,24,
26,35,37,44,20,44,13,44,13,44,13,44,12,24,9,83,