* class.c (instantiate_type): Don't abort on TREE_NONLOCAL_FLAG.
authorJason Merrill <jason@gcc.gnu.org>
Mon, 18 May 1998 03:03:44 +0000 (23:03 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Mon, 18 May 1998 03:03:44 +0000 (23:03 -0400)
From-SVN: r19831

gcc/cp/ChangeLog
gcc/cp/class.c

index b7757ae6b2f2268f5d7f1e541bdaee34f6ec5540..eec4cd8f9e436a9e5bef177139f8831d2756e879 100644 (file)
@@ -1,5 +1,12 @@
+Mon May 18 03:00:57 1998  Jason Merrill  <jason@yorick.cygnus.com>
+
+       * class.c (instantiate_type): Don't abort on TREE_NONLOCAL_FLAG.
+
 Mon May 18 01:43:01 1998  Martin v. Loewis  <loewis@informatik.hu-berlin.de>
 
+       * decl.c (lookup_name_real): Don't look at IDENTIFIER_LOCAL_VALUE 
+       for a type unless it is one.
+
        * class.c (finish_struct_1): Use OVL_CURRENT in error message.
 
 Mon May 18 01:24:08 1998  Jeffrey A Law  (law@cygnus.com)
index d4258db2e178bda81227aae3c7f59ae292d35ce3..b6ca77e7c32252358fd25f4e57ff80d5e5d197a4 100644 (file)
@@ -5229,16 +5229,18 @@ instantiate_type (lhstype, rhs, complain)
        tree elem, baselink, name = NULL_TREE;
 
        if (TREE_PURPOSE (rhs) == error_mark_node)
-       {
-         /* Make sure we don't drop the non-local flag, as the old code
-            would rely on it. */
-         int nl = TREE_NONLOCAL_FLAG (rhs);
-         /* We don't need the type of this node. */
-         rhs = TREE_VALUE (rhs);
-         my_friendly_assert (TREE_NONLOCAL_FLAG (rhs) == nl, 980331);
-       }
+         {
+           /* Make sure we don't drop the non-local flag, as the old code
+              would rely on it. */
+           int nl = TREE_NONLOCAL_FLAG (rhs);
+           /* We don't need the type of this node. */
+           rhs = TREE_VALUE (rhs);
+           my_friendly_assert (TREE_NONLOCAL_FLAG (rhs) == nl, 980331);
+         }
+
        /* Now we should have a baselink. */
-       my_friendly_assert (TREE_CODE (TREE_PURPOSE (rhs)) == TREE_VEC, 980331);
+       my_friendly_assert (TREE_CODE (TREE_PURPOSE (rhs)) == TREE_VEC,
+                           980331);
        /* First look for an exact match.  Search member functions.
           May have to undo what `default_conversion' might do to
           lhstype.  */
@@ -5247,20 +5249,10 @@ instantiate_type (lhstype, rhs, complain)
        if (lhstype == error_mark_node)
          return lhstype;
 
-       if (TREE_NONLOCAL_FLAG (rhs))
-         {
-           my_friendly_abort (980401);
-           /* Got to get it as a baselink.  */
-           rhs = lookup_fnfields (TYPE_BINFO (current_class_type),
-                                  DECL_NAME (OVL_FUNCTION (rhs)), 0);
-         }
-       else
-         {
-           my_friendly_assert (TREE_CHAIN (rhs) == NULL_TREE, 181);
-           my_friendly_assert (TREE_CODE (TREE_VALUE (rhs)) == FUNCTION_DECL
-                               || TREE_CODE (TREE_VALUE (rhs)) == OVERLOAD,
-                               182);
-         }
+       my_friendly_assert (TREE_CHAIN (rhs) == NULL_TREE, 181);
+       my_friendly_assert (TREE_CODE (TREE_VALUE (rhs)) == FUNCTION_DECL
+                           || TREE_CODE (TREE_VALUE (rhs)) == OVERLOAD,
+                           182);
 
        for (baselink = rhs; baselink;
             baselink = next_baselink (baselink))