From 384639f80ec8154333b42063bb769296b3a708ca Mon Sep 17 00:00:00 2001 From: Jeremy Hylton Date: Mon, 19 Feb 2001 15:50:51 +0000 Subject: When running python -O, do not include blocks defined in asserts in the symbol table pass. These blocks were already ignored by the code gen pass. Both passes must visit the same set of blocks in the same order. Fixes SF buf 132820 --- Python/compile.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Python/compile.c b/Python/compile.c index 2f98067..bc568c9 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -4496,6 +4496,17 @@ symtable_node(struct symtable *st, node *n) break; } + case assert_stmt: + if (Py_OptimizeFlag) + return; + if (NCH(n) == 2) { + n = CHILD(n, 1); + goto loop; + } else { + symtable_node(st, CHILD(n, 1)); + n = CHILD(n, 3); + goto loop; + } case except_clause: if (NCH(n) == 4) symtable_assign(st, CHILD(n, 3), 0); -- cgit v0.12