This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/25855] [4.0/4.1/4.2 Regression] template specialisation not always found (partial ordering)
- From: "mmitchel at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 28 Jan 2006 19:28:06 -0000
- Subject: [Bug c++/25855] [4.0/4.1/4.2 Regression] template specialisation not always found (partial ordering)
- References: <bug-25855-3563@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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