blob: 2dd6b23fa0249630f97031259388fd2fa0ad5245 [file] [log] [blame]
Douglas Gregor72341032011-12-14 21:23:13 +00001// RUN: %clang_cc1 -fsyntax-only %s -verify
2
3namespace 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}