// Test that we don't discard builtin candidates inappropriately.
struct B { };
struct A {
  operator int ();
  operator B ();
};
void operator+ (B, B);		// { dg-message "operator" "operator" }
int main ()
{
  A a;
  a + a;			// { dg-error "ambiguous" "ambiguous" }
  // { dg-message "operator" "match candidate text" { target *-*-* } .-1 }
}