]> git.proxmox.com Git - rustc.git/blob - src/llvm/tools/clang/test/CXX/expr/expr.unary/expr.unary.op/p3.cpp
Imported Upstream version 0.6
[rustc.git] / src / llvm / tools / clang / test / CXX / expr / expr.unary / expr.unary.op / p3.cpp
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 }