From 9480f1061333e75f90c493e7b18cb05437a6748f Mon Sep 17 00:00:00 2001 From: jason Date: Tue, 24 Nov 2009 20:55:17 +0000 Subject: [PATCH] * pt.c (determine_specialization): Give helpful error about missing "template<>". git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154518 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/pt.c | 4 ++++ gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/g++.dg/template/spec15.C | 1 + 4 files changed, 14 insertions(+) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index b40ddb6..ba3bbf2 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2009-11-24 Jason Merrill + + * pt.c (determine_specialization): Give helpful error about missing + "template<>". + 2009-11-23 Jakub Jelinek PR middle-end/42095 diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 2e58ed9..dfe7791 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -1945,6 +1945,10 @@ determine_specialization (tree template_id, { error ("template-id %qD for %q+D does not match any template " "declaration", template_id, decl); + if (header_count && header_count != template_count + 1) + inform (input_location, "saw %d %%>, need %d for " + "specializing a member function template", + header_count, template_count + 1); return error_mark_node; } else if ((templates && TREE_CHAIN (templates)) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2888410..dcf57249 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2009-11-23 Jason Merrill + + * g++.dg/template/spec15.C: Check for helpful message. + 2009-11-24 Janis Johnson * gcc.target/powerpc/altivec-32.c: Don't use -m64. diff --git a/gcc/testsuite/g++.dg/template/spec15.C b/gcc/testsuite/g++.dg/template/spec15.C index fcf4ecb..37fbc08 100644 --- a/gcc/testsuite/g++.dg/template/spec15.C +++ b/gcc/testsuite/g++.dg/template/spec15.C @@ -19,6 +19,7 @@ struct A { }; template <> void A::f (int); // { dg-error "" } +// { dg-message "need 2" "" { target *-*-* } 21 } template <> template <> void A::f (int); template <> void A::f2 (int); -- 2.7.4