Home | History | Annotate | Download | only in SemaCXX
      1 // RUN: %clang_cc1 -fsyntax-only -verify %s -std=c++11
      2 
      3 struct A {};
      4 
      5 struct R {
      6     operator const A*();
      7 };
      8 
      9 
     10 struct B  : R {
     11     operator A*();
     12 };
     13 
     14 struct C : B {
     15 
     16 };
     17 
     18 
     19 void foo(C c, int A::* pmf) {
     20        				// FIXME. Why so many built-in candidates?
     21 	int i = c->*pmf; 	// expected-error {{use of overloaded operator '->*' is ambiguous}} \
     22 				// expected-note {{built-in candidate operator->*(const struct A *, const int struct A::*)}} \
     23 				// expected-note {{built-in candidate operator->*(const struct A *, int struct A::*)}} \
     24 				// expected-note {{built-in candidate operator->*(struct A *, const int struct A::*)}} \
     25 				// expected-note {{built-in candidate operator->*(struct A *, int struct A::*)}}
     26 }
     27 
     28