| // RUN: %clang_cc1 -fsyntax-only %s -verify |
| |
| namespace rdar10544564 { |
| // Check that we don't attempt to use an overloaded operator& when |
| // naming a pointer-to-member. |
| struct X { |
| void** operator & (); |
| }; |
| |
| struct Y |
| { |
| public: |
| X member; |
| X memfunc1(); |
| X memfunc2(); |
| X memfunc2(int); |
| |
| void test() { |
| X Y::*data_mem_ptr = &Y::member; |
| X (Y::*func_mem_ptr1)() = &Y::memfunc1; |
| X (Y::*func_mem_ptr2)() = &Y::memfunc2; |
| } |
| }; |
| |
| X Y::*data_mem_ptr = &Y::member; |
| X (Y::*func_mem_ptr1)() = &Y::memfunc1; |
| X (Y::*func_mem_ptr2)() = &Y::memfunc2; |
| } |