* name-lookup.c, init.c, except.c: Revert Giovanni's patch from
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 8 Dec 2003 23:15:30 +0000 (23:15 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 8 Dec 2003 23:15:30 +0000 (23:15 +0000)
        yesterday.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@74446 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 3fa1392..63c8ce7 100644 (file)
@@ -1,5 +1,8 @@
 2003-12-08  Jason Merrill  <jason@redhat.com>
 
+       * name-lookup.c, init.c, except.c: Revert Giovanni's patch from
+       yesterday.
+
        Give the anonymous namespace a null DECL_NAME.
        * cp-tree.h: Don't declare anonymous_namespace_name.
        * decl.c: Don't define it.
index b684efb..1d4e766 100644 (file)
@@ -645,11 +645,6 @@ build_throw (tree exp)
          tmp = build_function_type (ptr_type_node, tmp);
          fn = push_throw_library_fn (fn, tmp);
        }
-      else if (really_overloaded_fn (fn))
-       {\r
-         error ("`%D' should never be overloaded", fn);
-         return error_mark_node;\r
-       }
       fn = OVL_CURRENT (fn);
       exp = build_function_call (fn, tree_cons (NULL_TREE, exp, NULL_TREE));
     }
index 19642d6..21b0032 100644 (file)
@@ -2005,18 +2005,11 @@ build_new_1 (tree exp)
       tree class_size = size_in_bytes (true_type);
       static const char alloc_name[] = "_Jv_AllocObject";
       use_java_new = 1;
-      if (!get_global_value_if_present (get_identifier (alloc_name), 
-                                       &alloc_decl))
-       {\r
-         error ("call to Java constructor with `%s' undefined", alloc_name);
-         return error_mark_node;
-       }
-      else if (really_overloaded_fn (alloc_decl))
-       {\r
-         error ("`%D' should never be overloaded", alloc_decl);
-         return error_mark_node;
-       }
-      alloc_decl = OVL_CURRENT (alloc_decl);
+      alloc_decl = IDENTIFIER_GLOBAL_VALUE (get_identifier (alloc_name));
+      if (alloc_decl == NULL_TREE)
+      fatal_error ("call to Java constructor with `%s' undefined",
+                   alloc_name);
+
       class_addr = build1 (ADDR_EXPR, jclass_node, class_decl);
       alloc_call = (build_function_call
                    (alloc_decl,
index 7446b30..ec8a634 100644 (file)
@@ -2006,11 +2006,7 @@ push_overloaded_decl (tree decl, int flags)
        }
     }
 
-  /* FIXME: We should build OVERLOADs for all function declarations here.
-     But right now, there are too many places where the code creates an
-     artificial declaration and expects the name to be bound exactly
-     to a FUNCTION_DECL.  */
-  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));
@@ -2020,6 +2016,7 @@ push_overloaded_decl (tree decl, int flags)
        OVL_USED (new_binding) = 1;
     }
   else
+    /* NAME is not ambiguous.  */
     new_binding = decl;
 
   if (doing_global)
@@ -2877,11 +2874,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);