summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Hylton <jeremy@alum.mit.edu>2001-02-19 15:50:51 (GMT)
committerJeremy Hylton <jeremy@alum.mit.edu>2001-02-19 15:50:51 (GMT)
commit384639f80ec8154333b42063bb769296b3a708ca (patch)
tree6c41dd203754f65d6a17852b29fd5734c3519ff0
parent4779399e9f4ff6fe7734fa9931aa6df82a98da24 (diff)
downloadcpython-384639f80ec8154333b42063bb769296b3a708ca.zip
cpython-384639f80ec8154333b42063bb769296b3a708ca.tar.gz
cpython-384639f80ec8154333b42063bb769296b3a708ca.tar.bz2
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
-rw-r--r--Python/compile.c11
1 files changed, 11 insertions, 0 deletions
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);