diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 55addacfe464d945523c99809f15b7064942a3dd..998303417d257c1dcde00e306abf799bee83c71e 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2011-12-01 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/51367 + * pt.c (unify_inconsistency): Use either %qT or %qE depending on + whether parm is a type or non-type parameter. + 2011-11-30 Jason Merrill <jason@redhat.com> PR c++/51009 diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 472508075776e109d0636e4c100fddd7edded127..15ef7a0caeadd23d9e8a813894b99cf5c0e12454 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -5501,9 +5501,16 @@ static int unify_inconsistency (bool explain_p, tree parm, tree first, tree second) { if (explain_p) - inform (input_location, - " conflicting deductions for parameter %qE (%qE and %qE)", - parm, first, second); + { + if (TYPE_P (parm)) + inform (input_location, + " deduced conflicting types for parameter %qT (%qT and %qT)", + parm, first, second); + else + inform (input_location, + " deduced conflicting values for non-type parameter " + "%qE (%qE and %qE)", parm, first, second); + } return 1; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 8e29dab0ade33c36e4f3b084409273d4932e1f5f..db9afc16709b2534665614cebc832cbfd92a8a9b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2011-12-01 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/51367 + * g++.dg/template/error47.C: New. + 2011-11-30 Jason Merrill <jason@redhat.com> PR c++/51009 diff --git a/gcc/testsuite/g++.dg/template/error47.C b/gcc/testsuite/g++.dg/template/error47.C new file mode 100644 index 0000000000000000000000000000000000000000..7e360fe69a88e2ed61618342d4759ba2c9ccf5be --- /dev/null +++ b/gcc/testsuite/g++.dg/template/error47.C @@ -0,0 +1,9 @@ +// PR c++/51367 + +template<typename T> void foo(T, T); // { dg-message "template" } + +void bar(void* p) +{ + foo(0, p); // { dg-error "no matching" } +} +// { dg-message "candidate|parameter 'T' ('int' and 'void*')" { target *-*-* } 7 }