name-lookup.c, [...]: Revert Giovanni's patch from yesterday.
authorJason Merrill <jason@redhat.com>
Mon, 8 Dec 2003 23:15:30 +0000 (18:15 -0500)
committerJason Merrill <jason@gcc.gnu.org>
Mon, 8 Dec 2003 23:15:30 +0000 (18:15 -0500)
        * name-lookup.c, init.c, except.c: Revert Giovanni's patch from
        yesterday.

From-SVN: r74446

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

index 3fa1392a98398112f7612a420f2630dcbd241464..63c8ce776cd3f6b9ed248d179ee06b8e3d03017c 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 b684efbb02266a374f8f66b710ee6dedaa8f4e2e..1d4e7668d1c236225dfaa7329f63750175609f67 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 19642d6a29c22885c7ba53a705ca7487e7a4c32b..21b0032d16f2a995397e24374b04c8aedcb820fa 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 7446b30c524ef69135300d45cfef9c41119b00ed..ec8a63427c6d770bf045c0afabf2fc384765d41f 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);