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