call.c (z_candidate::template_decl): Rename from template.

* call.c (z_candidate::template_decl): Rename from template.
        (add_template_candidate_real): Adjust member reference.
        (joust): Likewise.

From-SVN: r85411
This commit is contained in:
Gabriel Dos Reis 2004-08-01 18:07:32 +00:00 committed by Gabriel Dos Reis
parent dc6d70957c
commit ea0ad32920
2 changed files with 14 additions and 7 deletions

View file

@ -1,3 +1,9 @@
2004-08-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
* call.c (z_candidate::template_decl): Rename from template.
(add_template_candidate_real): Adjust member reference.
(joust): Likewise.
2004-07-29 Mark Mitchell <mark@codesourcery.com>
* cp-tree.h (IDENTIFIER_REPO_CHOSEN): Define.

View file

@ -424,7 +424,7 @@ struct z_candidate {
the `this' pointer must correspond to the most derived class
indicated by the CONVERSION_PATH. */
tree conversion_path;
tree template;
tree template_decl;
candidate_warning *warnings;
z_candidate *next;
};
@ -2262,9 +2262,9 @@ add_template_candidate_real (struct z_candidate **candidates, tree tmpl,
for this will point at template <class T> template <> S<T>::f(int),
so that we can find the definition. For the purposes of
overload resolution, however, we want the original TMPL. */
cand->template = tree_cons (tmpl, targs, NULL_TREE);
cand->template_decl = tree_cons (tmpl, targs, NULL_TREE);
else
cand->template = DECL_TEMPLATE_INFO (fn);
cand->template_decl = DECL_TEMPLATE_INFO (fn);
return cand;
}
@ -6023,9 +6023,9 @@ joust (struct z_candidate *cand1, struct z_candidate *cand2, bool warn)
F1 is a non-template function and F2 is a template function
specialization. */
if (! cand1->template && cand2->template)
if (!cand1->template_decl && cand2->template_decl)
return 1;
else if (cand1->template && ! cand2->template)
else if (cand1->template_decl && !cand2->template_decl)
return -1;
/* or, if not that,
@ -6033,10 +6033,11 @@ joust (struct z_candidate *cand1, struct z_candidate *cand2, bool warn)
more specialized than the template for F2 according to the partial
ordering rules. */
if (cand1->template && cand2->template)
if (cand1->template_decl && cand2->template_decl)
{
winner = more_specialized
(TI_TEMPLATE (cand1->template), TI_TEMPLATE (cand2->template),
(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,