* tree.c (walk_tree): Walk siblings even if !walk_subtrees.
authorJason Merrill <jason@redhat.com>
Tue, 7 Aug 2001 12:09:24 +0000 (08:09 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Tue, 7 Aug 2001 12:09:24 +0000 (08:09 -0400)
From-SVN: r44686

gcc/cp/ChangeLog
gcc/cp/tree.c

index 1b3cceb..dbde805 100644 (file)
@@ -1,3 +1,7 @@
+2001-08-07  Jason Merrill  <jason_merrill@redhat.com>
+
+       * tree.c (walk_tree): Walk siblings even if !walk_subtrees.
+
 2001-08-06  Richard Henderson  <rth@redhat.com>
 
        * decl2.c (finish_objects): Pass a symbol_ref and priority to
        declaring a function, and create last_function_parms correctly.
 
 2001-07-25  Jason Merrill  <jason_merrill@redhat.com>
-
+       
        * call.c (joust): Only prefer a non-builtin candidate to a builtin
        one if they have the same signature.
 
index 348942c..3642890 100644 (file)
@@ -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))