call.c (joust): Don't complain about operator char *()' beating operator const char *() const'.

* call.c (joust): Don't complain about `operator char *()' beating
        `operator const char *() const'.

From-SVN: r34875
This commit is contained in:
Jason Merrill 2000-07-05 16:04:49 -04:00 committed by Jason Merrill
parent a1337b40ca
commit ab78530579
2 changed files with 16 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2000-07-05 Jason Merrill <jason@redhat.com>
* call.c (joust): Don't complain about `operator char *()' beating
`operator const char *() const'.
2000-07-04 scott snyder <snyder@fnal.gov>
Jason Merrill <jason@redhat.com>

View File

@ -5050,11 +5050,21 @@ joust (cand1, cand2, warn)
if (comp != winner)
{
struct z_candidate *w, *l;
tree convn;
if (winner == 1)
w = cand1, l = cand2;
else
w = cand2, l = cand1;
if (warn)
if (DECL_CONTEXT (cand1->fn) == DECL_CONTEXT (cand2->fn)
&& ! DECL_CONSTRUCTOR_P (cand1->fn)
&& ! DECL_CONSTRUCTOR_P (cand2->fn)
&& (convn = standard_conversion
(TREE_TYPE (TREE_TYPE (l->fn)),
TREE_TYPE (TREE_TYPE (w->fn)), NULL_TREE))
&& TREE_CODE (convn) == QUAL_CONV)
/* Don't complain about `operator char *()' beating
`operator const char *() const'. */;
else if (warn)
{
tree source = source_type (TREE_VEC_ELT (w->convs, 0));
if (! DECL_CONSTRUCTOR_P (w->fn))