brintos

brintos / llvm-project-archived public Read only

0
0
Text · 626 B · 08ab0ca Raw
30 lines · cpp
1// RUN: %clang_cc1 -fsyntax-only %s -verify 2// expected-no-diagnostics3 4namespace rdar10544564 {5  // Check that we don't attempt to use an overloaded operator& when6  // naming a pointer-to-member.7  struct X {8    void** operator & ();9  };10 11  struct Y12  {13  public:14    X member;15    X memfunc1();16    X memfunc2();17    X memfunc2(int);18 19    void test() {20      X Y::*data_mem_ptr = &Y::member;21      X (Y::*func_mem_ptr1)() = &Y::memfunc1;22      X (Y::*func_mem_ptr2)() = &Y::memfunc2;23    }24  };25  26  X Y::*data_mem_ptr = &Y::member;27  X (Y::*func_mem_ptr1)() = &Y::memfunc1;28  X (Y::*func_mem_ptr2)() = &Y::memfunc2;29}30