diff options
author | nathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-03-31 17:36:17 +0000 |
---|---|---|
committer | nathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-03-31 17:36:17 +0000 |
commit | 517ee39a43d80fd91cc7c91c244ca0fc6e1d008e (patch) | |
tree | 5ecfece501acdb1b2be881d9444e863d74730ab4 /gcc/cp/call.c | |
parent | 4c9899442c741553dafcc7200453facc56916103 (diff) | |
download | gcc-517ee39a43d80fd91cc7c91c244ca0fc6e1d008e.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@97336 138bc75d-0d04-0410-961f-82ee72b054a4
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 131e175631e..9d76276cfff 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 |