]> granicus.if.org Git - python/commitdiff
When running python -O, do not include blocks defined in asserts in
authorJeremy Hylton <jeremy@alum.mit.edu>
Mon, 19 Feb 2001 15:50:51 +0000 (15:50 +0000)
committerJeremy Hylton <jeremy@alum.mit.edu>
Mon, 19 Feb 2001 15:50:51 +0000 (15:50 +0000)
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

index 2f98067ac899839209c8b62d0c9b1c6b2754f47d..bc568c9e668b13f4eb436477229162869c44998d 100644 (file)
@@ -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);