[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / DebugInfo / PDB / Inputs / every-class.cpp
blobc439bc2f365cc494b1048a5f0484772a35795cca
1 // Build with "cl.exe /Z7 /GR- /GS- /GX- every-class.cpp /link /debug:full /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) {}
11 struct Nothing {};
12 struct Constructor { Constructor() {} };
13 struct Assignment {
14 Assignment &operator=(Assignment Other) { return *this; }
16 struct Cast {
17 operator int() { return 42; }
20 struct Nested {
21 struct F {};
23 struct Operator {
24 int operator+(int X) { return 42; }
27 class Class {};
29 union Union {};
31 enum class Enum {A};
34 template<typename T> void f(T t) {}
36 int main(int argc, char **argv) {
37 struct Scoped {};
39 struct { } Anonymous;
41 f(Nothing{});
42 f(Constructor{});
43 f(Assignment{});
44 f(Cast{});
45 f(Nested{});
46 f(Operator{});
47 f(Nested::F{});
48 f(Scoped{});
49 f(Class{});
50 f(Union{});
51 f(Anonymous);
52 f(Enum::A);
55 f<const Nothing>(Nothing{});
56 f<volatile Nothing>(Nothing{});
57 f<const volatile Nothing>(Nothing{});
58 f<__unaligned Nothing>(Nothing{});
60 return 0;