diff options
author | Jason Merrill <jason@redhat.com> | 2015-08-05 21:33:32 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2015-08-05 21:33:32 -0400 |
commit | f31d0b122fcfbd94a6b94a03d706e98e53a0798b (patch) | |
tree | 5b7d49bd2411d8912b2f03bbe5f1c21533a14dd2 /gcc | |
parent | a2b4cfaa896be68bd0df2f75805ff50a549fd5d4 (diff) | |
download | gcc-f31d0b122fcfbd94a6b94a03d706e98e53a0798b.zip gcc-f31d0b122fcfbd94a6b94a03d706e98e53a0798b.tar.gz gcc-f31d0b122fcfbd94a6b94a03d706e98e53a0798b.tar.bz2 |
pt.c (determine_specialization): Print candidates after 'no match' error.
* pt.c (determine_specialization): Print candidates after 'no
match' error.
From-SVN: r226653
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/cp/pt.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/template/spec39.C | 3 |
3 files changed, 10 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 502dc20..986b942 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,8 @@ 2015-08-05 Jason Merrill <jason@redhat.com> + * pt.c (determine_specialization): Print candidates after 'no + match' error. + * decl.c (cp_finish_decl): Tidy. * typeck.c (finish_class_member_access_expr): Use type_dependent_expression_p. diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 5f28f1b..08fb2ff 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -1952,6 +1952,8 @@ determine_specialization (tree template_id, b = b->level_chain) ++header_count; + tree orig_fns = fns; + if (variable_template_p (fns)) { tree parms = INNERMOST_TEMPLATE_PARMS (DECL_TEMPLATE_PARMS (fns)); @@ -2168,6 +2170,8 @@ determine_specialization (tree template_id, inform (input_location, "saw %d %<template<>%>, need %d for " "specializing a member function template", header_count, template_count + 1); + else + print_candidates (orig_fns); return error_mark_node; } else if ((templates && TREE_CHAIN (templates)) diff --git a/gcc/testsuite/g++.dg/template/spec39.C b/gcc/testsuite/g++.dg/template/spec39.C new file mode 100644 index 0000000..9e4f8be --- /dev/null +++ b/gcc/testsuite/g++.dg/template/spec39.C @@ -0,0 +1,3 @@ +template <class T> void f(T); // { dg-message "void f" } +template <> int f(int); // { dg-error "does not match" } + |