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