aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@codesourcery.com>2000-09-04 10:28:11 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>2000-09-04 10:28:11 +0000
commit1bc0793e55808609cb199adba76f2de4a7cac4d5 (patch)
tree1c850d410d8e16a6d213ffff1fd090454b22b582
parent258451c86bf3c6ac4cd0b79254232ebe22a24fc3 (diff)
downloadgcc-1bc0793e55808609cb199adba76f2de4a7cac4d5.zip
gcc-1bc0793e55808609cb199adba76f2de4a7cac4d5.tar.gz
gcc-1bc0793e55808609cb199adba76f2de4a7cac4d5.tar.bz2
pt.c (lookup_template_class): Remove abort.
* pt.c (lookup_template_class): Remove abort. * tree.c (get_type_decl): Allow error_mark_node. From-SVN: r36134
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/pt.c4
-rw-r--r--gcc/cp/tree.c2
3 files changed, 8 insertions, 3 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 3d01f81..c99b9a0 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -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.
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 9da72ee..abf4f9b 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -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);
diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c
index 009cb0e..371f00f 100644
--- a/gcc/cp/tree.c
+++ b/gcc/cp/tree.c
@@ -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);