From: Jeffrey Oldham Date: Mon, 26 Feb 2001 15:59:30 +0000 (+0000) Subject: call.c (joust): Ensure more_specialized()'s argument length parameter has correct... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=fe7301610dfbad80fc917cb4c6aed0023903cfa5;p=gcc.git call.c (joust): Ensure more_specialized()'s argument length parameter has correct value for... 2001-02-26 Jeffrey Oldham * call.c (joust): Ensure more_specialized()'s argument length parameter has correct value for constructors. From-SVN: r40068 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index ede5dc12f50..4b0b80b3ce2 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2001-02-26 Jeffrey Oldham + + * call.c (joust): Ensure more_specialized()'s argument length + parameter has correct value for constructors. + 2001-02-26 Nathan Sidwell * except.c (call_eh_info): Cleanup generation of cp_eh_info struct. diff --git a/gcc/cp/call.c b/gcc/cp/call.c index b7e6e943c6b..a9af4027f78 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -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; }