re PR c++/25300 (ICE with g++.dg/template/inherit.C)
authorMark Mitchell <mark@codesourcery.com>
Mon, 12 Dec 2005 16:29:44 +0000 (16:29 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Mon, 12 Dec 2005 16:29:44 +0000 (16:29 +0000)
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

gcc/cp/ChangeLog
gcc/cp/tree.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/template/inherit.C

index b3bad798b3eb9589cb1116f0bfedca246b717484..700b99241ea95da05ca59c20c7b5e7125a6c5faa 100644 (file)
@@ -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 
index 15ee56c7c870da81be2e95de7d0b4bd44c6eb30a..4340c69e1d372fb1b95064ad57c8651b443e6740 100644 (file)
@@ -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;
index bdade3ec6f609c395bb72ec8330313b3868e6f73..6e5aad0f9dc63f337dac37b2fefc7d5b6c41cf8a 100644 (file)
@@ -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
index dbff7e145eedf18f30d9c02c32c63a8a4cbaedf3..bc20345fa0a7c7b57cf28818149a06bbc82560fc 100644 (file)
@@ -9,5 +9,5 @@ struct Z : X<int> { };
 int main()
 {
   Z z;
-  z.X::f();                     // { dg-error ".*" "" }
+  z.X::f();                     // { dg-error "template parameters" "" }
 }