re PR c++/2294 (using declaration confusion)
authorBernardo Innocenti <bernie@develer.com>
Sat, 15 Nov 2003 19:34:57 +0000 (20:34 +0100)
committerBernardo Innocenti <bernie@gcc.gnu.org>
Sat, 15 Nov 2003 19:34:57 +0000 (20:34 +0100)
PR c++/2294
* name-lookup.c: Revert previous patch for PR c++/2294 to prevent
build failure on libjava.

From-SVN: r73630

gcc/cp/ChangeLog
gcc/cp/name-lookup.c

index e773b79c834be5ee7519b2fa734a600ce79f99bc..eb3b0f0f511bb1acb065b264667ded2d48e905f1 100644 (file)
@@ -1,3 +1,9 @@
+2003-11-15  Bernardo Innocenti  <bernie@develer.com>
+
+       PR c++/2294
+       * name-lookup.c: Revert previous patch for PR c++/2294 to prevent
+       build failure on libjava.
+
 2003-11-14  Giovanni Bajo  <giovannibajo@libero.it>
 
         PR c++/2294
index bb4b0ac68dd3f4145e0fbc9fb77a1b69d95e681c..a31aeebbcafe8e686ba448fabfed615d4f44d84c 100644 (file)
@@ -2002,7 +2002,7 @@ push_overloaded_decl (tree decl, int flags)
        }
     }
 
-  if (!DECL_ARTIFICIAL (decl))
+  if (old || TREE_CODE (decl) == TEMPLATE_DECL)
     {
       if (old && TREE_CODE (old) != OVERLOAD)
        new_binding = ovl_cons (decl, ovl_cons (old, NULL_TREE));
@@ -2012,6 +2012,7 @@ push_overloaded_decl (tree decl, int flags)
        OVL_USED (new_binding) = 1;
     }
   else
+    /* NAME is not ambiguous.  */
     new_binding = decl;
 
   if (doing_global)
@@ -2869,11 +2870,7 @@ set_namespace_binding (tree name, tree scope, tree val)
   if (scope == NULL_TREE)
     scope = global_namespace;
   b = binding_for_name (NAMESPACE_LEVEL (scope), name);
-  if (!b->value
-      /* If OVL_CHAIN is NULL, it's the first FUNCTION_DECL for this name,
-         and we still need to call supplement_binding.  */
-      || (TREE_CODE (val) == OVERLOAD && OVL_CHAIN (val))
-      || val == error_mark_node)
+  if (!b->value || TREE_CODE (val) == OVERLOAD || val == error_mark_node)
     b->value = val;
   else
     supplement_binding (b, val);