1 // PR c++/50858
2 
3 class String {
4    typedef struct ImplicitConversionFromWTFStringToBoolDisallowedA*
5    (String::*UnspecifiedBoolTypeA);
6    typedef struct ImplicitConversionFromWTFStringToBoolDisallowedB*
7    (String::*UnspecifiedBoolTypeB);
8    operator UnspecifiedBoolTypeA() const;
9    operator UnspecifiedBoolTypeB() const;
10 };
equalIgnoringCase(const String & a,const String & b)11 inline bool equalIgnoringCase(const String& a, const String& b) { return true; }
equalPossiblyIgnoringCase(const String & a,const String & b,bool ignoreCase)12 inline bool equalPossiblyIgnoringCase(const String& a,
13                                       const String& b,
14                                       bool ignoreCase) {
15   return ignoreCase ? equalIgnoringCase(a, b) : (a == b); } // { dg-error "ambiguous" }
16 // { dg-message "note" "note" { target *-*-* } .-1 }
17