aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/call.c
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@codesourcery.com>2005-03-31 17:36:17 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>2005-03-31 17:36:17 +0000
commitdda0439880fee40a90309ed74446c29a3ca08a05 (patch)
tree5ecfece501acdb1b2be881d9444e863d74730ab4 /gcc/cp/call.c
parent27954bdbc3051fbf6adfdc8675fa33f36da7c292 (diff)
downloadgcc-dda0439880fee40a90309ed74446c29a3ca08a05.zip
gcc-dda0439880fee40a90309ed74446c29a3ca08a05.tar.gz
gcc-dda0439880fee40a90309ed74446c29a3ca08a05.tar.bz2
PR c++/19203, implement DR 214
cp: PR c++/19203, implement DR 214 * call.c (joust): Use more_specialized_fn. * cp-tree.h (DEDUCE_ORDER): Remove. (more_specialized): Replace with ... (more_specialized_fn): ... this. * pt.c (maybe_adjust_types_for_deduction): Remove DEDUCE_ORDER case. (type_unification_real): Remove DEDUCE_ORDER case. (more_specialized): Replace with ... (more_specialized_fn): ... this. Implement DR 214. (most_specialized_instantiation): Use get_bindings_real directly. testsuite: PR c++/19203, DR 214 * g++.dg/parse/ambig3.C: Not ambiguous. * g++.dg/template/spec20.C: New. * g++.dg/template/spec21.C: New. From-SVN: r97336
Diffstat (limited to 'gcc/cp/call.c')
-rw-r--r--gcc/cp/call.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/gcc/cp/call.c b/gcc/cp/call.c
index 131e175..9d76276c 100644
--- a/gcc/cp/call.c
+++ b/gcc/cp/call.c
@@ -6084,10 +6084,9 @@ joust (struct z_candidate *cand1, struct z_candidate *cand2, bool warn)
if (cand1->template_decl && cand2->template_decl)
{
- winner = more_specialized
+ winner = more_specialized_fn
(TI_TEMPLATE (cand1->template_decl),
TI_TEMPLATE (cand2->template_decl),
- DEDUCE_ORDER,
/* Tell the deduction code how many real function arguments
we saw, not counting the implicit 'this' argument. But,
add_function_candidate() suppresses the "this" argument