diff options
author | Nathan Sidwell <nathan@codesourcery.com> | 2005-03-31 17:36:17 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2005-03-31 17:36:17 +0000 |
commit | dda0439880fee40a90309ed74446c29a3ca08a05 (patch) | |
tree | 5ecfece501acdb1b2be881d9444e863d74730ab4 /gcc/cp/call.c | |
parent | 27954bdbc3051fbf6adfdc8675fa33f36da7c292 (diff) | |
download | gcc-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.c | 3 |
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 |