[ARM] More MVE compare vector splat combines for ANDs
[llvm-complete.git] / test / DebugInfo / PDB / Inputs / every-pointer.cpp
blob7f7fab93b822894e440583d8ff1d01ce23bfeb11
1 // Build with "cl.exe /Zi /GR- /GX- every-pointer.cpp /link /debug /nodefaultlib /incremental:no /entry:main"
3 #include <stdint.h>
5 // clang-format off
6 void *__purecall = 0;
8 void __cdecl operator delete(void *,unsigned int) {}
9 void __cdecl operator delete(void *,unsigned __int64) {}
12 struct Foo {
13 int X = 0;
14 int func() { return 42; }
17 int *IntP = nullptr;
18 Foo *FooP = nullptr;
20 Foo F;
22 Foo __unaligned *UFooP = &F;
23 Foo * __restrict RFooP = &F;
25 const Foo * CFooP = &F;
26 volatile Foo * VFooP = &F;
27 const volatile Foo * CVFooP = &F;
29 template<typename T> void f(T t) {}
31 int main(int argc, char **argv) {
32 f<int*>(IntP);
33 f<Foo*>(FooP);
35 f<Foo __unaligned *>(UFooP);
36 f<Foo *__restrict>(RFooP);
38 f<const Foo*>(CFooP);
39 f<volatile Foo*>(VFooP);
40 f<const volatile Foo*>(CVFooP);
42 f<Foo&>(F);
43 f<Foo&&>(static_cast<Foo&&>(F));
45 f(&Foo::X);
46 f(&Foo::func);
47 return 0;