diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/pt.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/template/spec15.C | 1 |
4 files changed, 14 insertions, 0 deletions
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 <jason@redhat.com> + + * pt.c (determine_specialization): Give helpful error about missing + "template<>". + 2009-11-23 Jakub Jelinek <jakub@redhat.com> 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 %<template<>%>, 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 <jason@redhat.com> + + * g++.dg/template/spec15.C: Check for helpful message. + 2009-11-24 Janis Johnson <janis187@us.ibm.com> * 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<float> { }; template <> void A<int>::f (int); // { dg-error "" } +// { dg-message "need 2" "" { target *-*-* } 21 } template <> template <> void A<int>::f (int); template <> void A<int>::f2 (int); |