From b1b79e36b42dd9a9f972966ba548ef0b8278ee2a Mon Sep 17 00:00:00 2001 From: mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Mon, 12 Dec 2005 16:29:44 +0000 Subject: [PATCH] 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108413 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/cp/ChangeLog | 6 ++++++ gcc/cp/tree.c | 4 ++++ gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.dg/template/inherit.C | 2 +- 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index b3bad798b3eb..700b99241ea9 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 15ee56c7c870..4340c69e1d37 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 bdade3ec6f60..6e5aad0f9dc6 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 dbff7e145eed..bc20345fa0a7 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" "" } } -- GitLab