aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2005-12-12 16:29:44 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2005-12-12 16:29:44 +0000
commit36569397edc59ef5ccefbf4c0d70deff54102afd (patch)
tree11a1e2f772f139cd27e6c33fb6034becdb1dfb38
parent74daec8cf211dc4bc322ec9ee5a6e992122ceb45 (diff)
downloadgcc-36569397edc59ef5ccefbf4c0d70deff54102afd.zip
gcc-36569397edc59ef5ccefbf4c0d70deff54102afd.tar.gz
gcc-36569397edc59ef5ccefbf4c0d70deff54102afd.tar.bz2
re PR c++/25300 (ICE with g++.dg/template/inherit.C)
PR c++/25300 * tree.c (build_qualified_name): Return error_mark_node for erroneous input. PR c++/25300 * g++.dg/template/inherit.C: Do not use a generic error message. From-SVN: r108413
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/tree.c4
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/template/inherit.C2
4 files changed, 16 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index b3bad79..700b992 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2005-12-12 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/25300
+ * tree.c (build_qualified_name): Return error_mark_node for
+ erroneous input.
+
2005-12-10 Mark Mitchell <mark@codesourcery.com>
PR c++/25337
diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c
index 15ee56c..4340c69 100644
--- a/gcc/cp/tree.c
+++ b/gcc/cp/tree.c
@@ -817,6 +817,10 @@ tree
build_qualified_name (tree type, tree scope, tree name, bool template_p)
{
tree t;
+ if (type == error_mark_node
+ || scope == error_mark_node
+ || name == error_mark_node)
+ return error_mark_node;
t = build2 (SCOPE_REF, type, scope, name);
QUALIFIED_NAME_IS_TEMPLATE (t) = template_p;
return t;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index bdade3e..6e5aad0 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2005-12-12 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/25300
+ * g++.dg/template/inherit.C: Do not use a generic error message.
+
2005-12-12 Andrew Pinski <pinskia@physics.uc.edu>
PR libobjc/25354
diff --git a/gcc/testsuite/g++.dg/template/inherit.C b/gcc/testsuite/g++.dg/template/inherit.C
index dbff7e1..bc20345 100644
--- a/gcc/testsuite/g++.dg/template/inherit.C
+++ b/gcc/testsuite/g++.dg/template/inherit.C
@@ -9,5 +9,5 @@ struct Z : X<int> { };
int main()
{
Z z;
- z.X::f(); // { dg-error ".*" "" }
+ z.X::f(); // { dg-error "template parameters" "" }
}