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