1*518cb2d5SZachary Turner // Build with "cl.exe /Zi /GR- /GX- every-array.cpp /link /debug /nodefaultlib /entry:main"
2*518cb2d5SZachary Turner
3*518cb2d5SZachary Turner // clang-format off
4*518cb2d5SZachary Turner void *__purecall = 0;
5*518cb2d5SZachary Turner
operator delete(void *,unsigned int)6*518cb2d5SZachary Turner void __cdecl operator delete(void *,unsigned int) {}
operator delete(void *,unsigned __int64)7*518cb2d5SZachary Turner void __cdecl operator delete(void *,unsigned __int64) {}
8*518cb2d5SZachary Turner
9*518cb2d5SZachary Turner
func1()10*518cb2d5SZachary Turner int func1() { return 42; }
func2()11*518cb2d5SZachary Turner int func2() { return 43; }
func3()12*518cb2d5SZachary Turner int func3() { return 44; }
13*518cb2d5SZachary Turner
14*518cb2d5SZachary Turner template<typename T>
Reference(T & t)15*518cb2d5SZachary Turner void Reference(T &t) { }
16*518cb2d5SZachary Turner
17*518cb2d5SZachary Turner int IA[3] = {1, 2, 3};
18*518cb2d5SZachary Turner const int CIA[3] = {1, 2, 3};
19*518cb2d5SZachary Turner volatile int VIA[3] = {1, 2, 3};
20*518cb2d5SZachary Turner
21*518cb2d5SZachary Turner using FuncPtr = decltype(&func1);
22*518cb2d5SZachary Turner FuncPtr FA[3] = {&func1, &func2, &func3};
23*518cb2d5SZachary Turner
24*518cb2d5SZachary Turner struct S {
25*518cb2d5SZachary Turner int N;
fS26*518cb2d5SZachary Turner int f() const { return 42; }
27*518cb2d5SZachary Turner };
28*518cb2d5SZachary Turner
29*518cb2d5SZachary Turner using MemDataPtr = decltype(&S::N);
30*518cb2d5SZachary Turner using MemFunPtr = decltype(&S::f);
31*518cb2d5SZachary Turner
32*518cb2d5SZachary Turner MemDataPtr MDA[1] = {&S::N};
33*518cb2d5SZachary Turner MemFunPtr MFA[1] = {&S::f};
34*518cb2d5SZachary Turner
35*518cb2d5SZachary Turner
main(int argc,char ** argv)36*518cb2d5SZachary Turner int main(int argc, char **argv) {
37*518cb2d5SZachary Turner }
38