[Bug c++/25855] [4.0/4.1/4.2 Regression] template specialisation not always found (partial ordering)
mmitchel at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Sat Jan 28 19:28:00 GMT 2006
------- Comment #18 from mmitchel at gcc dot gnu dot org 2006-01-28 19:28 -------
Subject: Bug 25855
Author: mmitchel
Date: Sat Jan 28 19:28:01 2006
New Revision: 110332
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=110332
Log:
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.
Added:
trunk/gcc/testsuite/g++.dg/template/spec29.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/class.c
trunk/gcc/cp/name-lookup.c
trunk/gcc/cp/pt.c
trunk/gcc/testsuite/ChangeLog
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25855
More information about the Gcc-bugs
mailing list