From 17820c4f1b4726b04360f22d515b44b3a755a55d Mon Sep 17 00:00:00 2001 From: Jeremy Hylton Date: Mon, 19 Feb 2001 15:33:10 +0000 Subject: Tolerate ill-formed trees in symtable_assign(). Fixes SF bug 132510. --- Python/compile.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/Python/compile.c b/Python/compile.c index 7b17404..2f98067 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -4810,11 +4810,14 @@ symtable_assign(struct symtable *st, node *n, int flag) default: if (NCH(n) == 0) return; - if (NCH(n) != 1) { - DUMP(n); - Py_FatalError("too many children in default case\n"); + if (NCH(n) == 1) { + n = CHILD(n, 0); + goto loop; } - n = CHILD(n, 0); - goto loop; + /* Should only occur for errors like x + 1 = 1, + which will be caught in the next pass. */ + for (i = 0; i < NCH(n); ++i) + if (TYPE(CHILD(n, i)) >= single_input) + symtable_assign(st, CHILD(n, i), flag); } } -- cgit v0.12