URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc3/] [gcc/] [testsuite/] [g++.old-deja/] [g++.robertl/] [eb22.C] - Rev 516
Compare with Previous | Blame | View Log
// { dg-do assemble }
// Ambiguous conversion, three candidates:
// builtin == (int, int), and the two user-defined operators
// Each one requires a user-defined ICS where another uses builtin conversions,
// so none is the best viable function.
class MyInt
{
public:
MyInt(int = 0) {}
operator int() const {return 2;}
};
bool operator==(const MyInt& a, const int& b) // { dg-message "note" } candidate
{
return (int)a == b;
}
bool operator==(const MyInt& a, const MyInt& b) // { dg-message "note" } candidate
{
return (int)a == (int)b;
}
bool f()
{
return 3 == MyInt(); // { dg-error "ambiguous" "err" }
// { dg-message "candidates" "note" { target *-*-* } 26 }
}