From 59a13e0fb4720294366a9a82eccfe6b2e4f5e394 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Tue, 7 Aug 2001 08:09:24 -0400 Subject: * tree.c (walk_tree): Walk siblings even if !walk_subtrees. From-SVN: r44686 --- gcc/cp/ChangeLog | 6 +++++- gcc/cp/tree.c | 12 +++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) (limited to 'gcc/cp') diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 1b3cceb..dbde805 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,7 @@ +2001-08-07 Jason Merrill + + * tree.c (walk_tree): Walk siblings even if !walk_subtrees. + 2001-08-06 Richard Henderson * decl2.c (finish_objects): Pass a symbol_ref and priority to @@ -140,7 +144,7 @@ declaring a function, and create last_function_parms correctly. 2001-07-25 Jason Merrill - + * call.c (joust): Only prefer a non-builtin candidate to a builtin one if they have the same signature. diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c index 348942c..3642890 100644 --- a/gcc/cp/tree.c +++ b/gcc/cp/tree.c @@ -1198,12 +1198,18 @@ walk_tree (tp, func, data, htab) if (result) return result; + code = TREE_CODE (*tp); + /* Even if we didn't, FUNC may have decided that there was nothing interesting below this point in the tree. */ if (!walk_subtrees) - return NULL_TREE; - - code = TREE_CODE (*tp); + { + if (statement_code_p (code) || code == TREE_LIST || code == OVERLOAD) + /* But we still need to check our siblings. */ + return walk_tree (&TREE_CHAIN (*tp), func, data, htab); + else + return NULL_TREE; + } /* Handle common cases up front. */ if (IS_EXPR_CODE_CLASS (TREE_CODE_CLASS (code)) -- cgit v1.1