text: // RUN: %clang_cc1 -fsyntax-only -verify %s -std=c++11
  
  struct A {};
  struct E {};
  
  struct R {
      operator A*();
      operator E*();	// expected-note{{candidate function}}
  };
  
  
  struct S {
      operator A*();
      operator E*();	// expected-note{{candidate function}}
  };
  
  struct B  : R {
      operator A*();
  };
  
  struct C : B {
  
  };
  
  void foo(C c, int A::* pmf) {
  	int i = c->*pmf; 
  }
  
  struct B1  : R, S {
      operator A*();
  };
  
  struct C1 : B1 {
  
  };
  
  void foo1(C1 c1, int A::* pmf) {
          int i = c1->*pmf;
          c1->*pmf = 10;
  }
  
  void foo1(C1 c1, int E::* pmf) {
          int i = c1->*pmf;	// expected-error {{use of overloaded operator '->*' is ambiguous}} \
                                  // expected-note {{because of ambiguity in conversion of 'C1' to 'E *'}} \
                                  // expected-note 4 {{built-in candidate operator}}
  }
  