re PR c++/25855 (template specialisation not always found (partial ordering))
authorMark Mitchell <mark@codesourcery.com>
Sat, 28 Jan 2006 19:28:01 +0000 (19:28 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Sat, 28 Jan 2006 19:28:01 +0000 (19:28 +0000)
commit7ca383e6791272a9f99390b5981ae476a9b490f1
treecf01e7e1711bb0a24daf243f5df6daba7b5aa587
parente94aab95ee93fd7c5f31ad1ec5aecdb9c3c97453
re PR c++/25855 (template specialisation not always found (partial ordering))

PR c++/25855
* class.c (resolve_address_of_overloaded_function): Adjust use of
return value from most_specialized_instantiation.
* pt.c (determine_specialization): Avoid multiple calls to
get_bindings.
(most_specialized_instantiation): When a tie occurs, set the
current presumed champion to the next template.  Return the
TREE_LIST node containing the template, rather than the template
itself.
(most_specialized): Remove.
* name-lookup.c (push_overloaded_decl): When duplicate_decls
indicates a failed redeclaration, report that to callers.
PR c++/25855
* g++.dg/template/spec29.C: New test.

From-SVN: r110332
gcc/cp/ChangeLog
gcc/cp/class.c
gcc/cp/name-lookup.c
gcc/cp/pt.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/template/spec29.C [new file with mode: 0644]