Home | History | Annotate | Download | only in expr.unary.op
      1 // RUN: %clang_cc1 -fsyntax-only %s -verify
      2 // expected-no-diagnostics
      3 
      4 namespace rdar10544564 {
      5   // Check that we don't attempt to use an overloaded operator& when
      6   // naming a pointer-to-member.
      7   struct X {
      8     void** operator & ();
      9   };
     10 
     11   struct Y
     12   {
     13   public:
     14     X member;
     15     X memfunc1();
     16     X memfunc2();
     17     X memfunc2(int);
     18 
     19     void test() {
     20       X Y::*data_mem_ptr = &Y::member;
     21       X (Y::*func_mem_ptr1)() = &Y::memfunc1;
     22       X (Y::*func_mem_ptr2)() = &Y::memfunc2;
     23     }
     24   };
     25 
     26   X Y::*data_mem_ptr = &Y::member;
     27   X (Y::*func_mem_ptr1)() = &Y::memfunc1;
     28   X (Y::*func_mem_ptr2)() = &Y::memfunc2;
     29 }
     30