xref: /llvm-project/clang/test/SemaCXX/member-pointer-ms.cpp (revision 26b2095401effe508ee076f53ea1304f64e1f9c2)
1 // RUN: %clang_cc1 -cxx-abi microsoft -fms-compatibility -fsyntax-only -verify %s
2 
3 // Test that we don't allow reinterpret_casts from pointers of one size to
4 // pointers of a different size.
5 struct A {};
6 struct B {};
7 struct C: A, B {};
8 
9 void (A::*paf)();
10 void (C::*pcf)() = reinterpret_cast<void (C::*)()>(paf); //expected-error{{cannot reinterpret_cast from member pointer type}}
11 
12 class __single_inheritance D;
13 class __multiple_inheritance D; // expected-warning {{ignored since inheritance model was already declared as 'single'}}
14 
15 class __virtual_inheritance E;
16 class __virtual_inheritance E;  // no warning expected since same attribute
17