pt.c (lookup_template_class): Remove abort.
authorNathan Sidwell <nathan@codesourcery.com>
Mon, 4 Sep 2000 10:28:11 +0000 (10:28 +0000)
committerNathan Sidwell <nathan@gcc.gnu.org>
Mon, 4 Sep 2000 10:28:11 +0000 (10:28 +0000)
* pt.c (lookup_template_class): Remove abort.
* tree.c (get_type_decl): Allow error_mark_node.

From-SVN: r36134

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

index 3d01f81..c99b9a0 100644 (file)
@@ -1,5 +1,10 @@
 2000-09-04  Nathan Sidwell  <nathan@codesourcery.com>
 
+       * pt.c (lookup_template_class): Remove abort.
+       * tree.c (get_type_decl): Allow error_mark_node.
+
+2000-09-04  Nathan Sidwell  <nathan@codesourcery.com>
+
        * decl2.c (arg_assoc): Deal with COMPONENT_REFs inside
        TEMPLATE_ID_EXPRs.
 
index 9da72ee..abf4f9b 100644 (file)
@@ -3770,14 +3770,12 @@ lookup_template_class (d1, arglist, in_decl, context, entering_scope)
       d1 = DECL_NAME (template);
       context = DECL_CONTEXT (template);
     }
-  else
-    my_friendly_abort (272);
 
   /* With something like `template <class T> class X class X { ... };'
      we could end up with D1 having nothing but an IDENTIFIER_VALUE.
      We don't want to do that, but we have to deal with the situation,
      so let's give them some syntax errors to chew on instead of a
-     crash.  */
+     crash. Alternatively D1 might not be a template type at all.  */
   if (! template)
     {
       cp_error ("`%T' is not a template", d1);
index 009cb0e..371f00f 100644 (file)
@@ -1846,6 +1846,8 @@ get_type_decl (t)
     return t;
   if (TYPE_P (t))
     return TYPE_STUB_DECL (t);
+  if (t == error_mark_node)
+    return t;
   
   my_friendly_abort (42);