* call.c (joust): Fix handling of overloaded builtin operators.

From-SVN: r34269
This commit is contained in:
Mark Mitchell 2000-05-30 17:39:59 +00:00 committed by Mark Mitchell
parent 28ecb7ab47
commit 54ae96de89
3 changed files with 18 additions and 1 deletions

View file

@ -1,3 +1,7 @@
2000-05-30 Mark Mitchell <mark@codesourcery.com>
* call.c (joust): Fix handling of overloaded builtin operators.
2000-05-30 Zack Weinberg <zack@wolery.cumb.org>
* cp-tree.h (DECL_ANTICIPATED): New macro.

View file

@ -5128,7 +5128,7 @@ joust (cand1, cand2, warn)
/* Kludge around broken overloading rules whereby
Integer a, b; test ? a : b; is ambiguous, since there's a builtin
that takes references and another that takes values. */
if (DECL_OVERLOADED_OPERATOR_P (cand1->fn) == COND_EXPR)
if (cand1->fn == ansi_opname (COND_EXPR))
{
tree c1 = TREE_VEC_ELT (cand1->convs, 1);
tree c2 = TREE_VEC_ELT (cand2->convs, 1);

View file

@ -0,0 +1,13 @@
// Build don't link:
// Origin: Nathan Sidwell <nathan@codesourcery.com>
struct A {
bool operator== (A const &);
operator bool () const;
operator int * () const;
};
bool foo (A &a1, A &a2)
{
return a1 == a2;
}