xref: /minix3/external/bsd/llvm/dist/clang/test/CodeGenCXX/rtti-fundamental.cpp (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1f4a2713aSLionel Sambuc // RUN: %clang_cc1 %s -I%S -triple=x86_64-apple-darwin10 -emit-llvm -o - | FileCheck %s
2f4a2713aSLionel Sambuc 
3f4a2713aSLionel Sambuc #include <typeinfo>
4f4a2713aSLionel Sambuc 
foo()5f4a2713aSLionel Sambuc std::type_info foo() {
6f4a2713aSLionel Sambuc   return typeid(void);
7f4a2713aSLionel Sambuc }
8f4a2713aSLionel Sambuc 
9f4a2713aSLionel Sambuc namespace __cxxabiv1 {
10f4a2713aSLionel Sambuc   struct __fundamental_type_info {
11f4a2713aSLionel Sambuc     virtual ~__fundamental_type_info();
12f4a2713aSLionel Sambuc   };
13f4a2713aSLionel Sambuc 
~__fundamental_type_info()14f4a2713aSLionel Sambuc   __fundamental_type_info::~__fundamental_type_info() { }
15f4a2713aSLionel Sambuc }
16f4a2713aSLionel Sambuc 
17f4a2713aSLionel Sambuc // void
18*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIv = constant
19*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPv = constant
20*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPKv = constant
21f4a2713aSLionel Sambuc 
22f4a2713aSLionel Sambuc // std::nullptr_t
23*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIDn = constant
24*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPDn = constant
25*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPKDn = constant
26f4a2713aSLionel Sambuc 
27f4a2713aSLionel Sambuc // bool
28*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIb = constant
29*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPb = constant
30*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPKb = constant
31f4a2713aSLionel Sambuc 
32f4a2713aSLionel Sambuc // wchar_t
33*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIw = constant
34*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPw = constant
35*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPKw = constant
36f4a2713aSLionel Sambuc 
37f4a2713aSLionel Sambuc // char
38*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIc = constant
39*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPc = constant
40*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPKc = constant
41f4a2713aSLionel Sambuc 
42f4a2713aSLionel Sambuc // unsigned char
43*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIh = constant
44*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPh = constant
45*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPKh = constant
46f4a2713aSLionel Sambuc 
47f4a2713aSLionel Sambuc // signed char
48*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIa = constant
49*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPa = constant
50*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPKa = constant
51f4a2713aSLionel Sambuc 
52f4a2713aSLionel Sambuc // short
53*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIs = constant
54*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPs = constant
55*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPKs = constant
56f4a2713aSLionel Sambuc 
57f4a2713aSLionel Sambuc // unsigned short
58*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIt = constant
59*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPt = constant
60*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPKt = constant
61f4a2713aSLionel Sambuc 
62f4a2713aSLionel Sambuc // int
63*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIi = constant
64*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPi = constant
65*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPKi = constant
66f4a2713aSLionel Sambuc 
67f4a2713aSLionel Sambuc // unsigned int
68*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIj = constant
69*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPj = constant
70*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPKj = constant
71f4a2713aSLionel Sambuc 
72f4a2713aSLionel Sambuc // long
73*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIl = constant
74*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPl = constant
75*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPKl = constant
76f4a2713aSLionel Sambuc 
77f4a2713aSLionel Sambuc // unsigned long
78*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIm = constant
79*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPm = constant
80*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPKm = constant
81f4a2713aSLionel Sambuc 
82f4a2713aSLionel Sambuc // long long
83*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIx = constant
84*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPx = constant
85*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPKx = constant
86f4a2713aSLionel Sambuc 
87f4a2713aSLionel Sambuc // unsigned long long
88*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIy = constant
89*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPy = constant
90*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPKy = constant
91*0a6a1f1dSLionel Sambuc 
92*0a6a1f1dSLionel Sambuc // half
93*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIDh = constant
94*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPDh = constant
95*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPKDh = constant
96f4a2713aSLionel Sambuc 
97f4a2713aSLionel Sambuc // float
98*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIf = constant
99*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPf = constant
100*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPKf = constant
101f4a2713aSLionel Sambuc 
102f4a2713aSLionel Sambuc // double
103*0a6a1f1dSLionel Sambuc // CHECK: @_ZTId = constant
104*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPd = constant
105*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPKd = constant
106f4a2713aSLionel Sambuc 
107f4a2713aSLionel Sambuc // long double
108*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIe = constant
109*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPe = constant
110*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPKe = constant
111f4a2713aSLionel Sambuc 
112f4a2713aSLionel Sambuc // char16_t
113*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIDs = constant
114*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPDs = constant
115*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPKDs = constant
116f4a2713aSLionel Sambuc 
117f4a2713aSLionel Sambuc // char32_t
118*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIDi = constant
119*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPDi = constant
120*0a6a1f1dSLionel Sambuc // CHECK: @_ZTIPKDi = constant
121f4a2713aSLionel Sambuc 
122