call.c (joust): Ensure more_specialized()'s argument length parameter has correct value for...

2001-02-26  Jeffrey Oldham  <oldham@codesourcery.com>

	* call.c (joust): Ensure more_specialized()'s argument length
	parameter has correct value for constructors.

From-SVN: r40068
This commit is contained in:
Jeffrey Oldham 2001-02-26 15:59:30 +00:00 committed by Jeffrey D. Oldham
parent 2851a0e467
commit fe7301610d
2 changed files with 12 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2001-02-26 Jeffrey Oldham <oldham@codesourcery.com>
* call.c (joust): Ensure more_specialized()'s argument length
parameter has correct value for constructors.
2001-02-26 Nathan Sidwell <nathan@codesourcery.com>
* except.c (call_eh_info): Cleanup generation of cp_eh_info struct.

View File

@ -5221,14 +5221,18 @@ joust (cand1, cand2, warn)
winner = more_specialized
(TI_TEMPLATE (cand1->template), TI_TEMPLATE (cand2->template),
DEDUCE_ORDER,
/* Tell the deduction code how many real function arguments we saw,
not counting the implicit 'this' argument.
/* 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
for constructors.
[temp.func.order]: The presence of unused ellipsis and default
arguments has no effect on the partial ordering of function
templates. */
TREE_VEC_LENGTH (cand1->convs)
- DECL_NONSTATIC_MEMBER_FUNCTION_P (cand1->fn));
- (DECL_NONSTATIC_MEMBER_FUNCTION_P (cand1->fn)
- DECL_CONSTRUCTOR_P (cand1->fn)));
/* HERE */
if (winner)
return winner;
}