1 // RUN: %clang_cc1 -triple powerpc64-ibm-aix %s -internal-isystem %S -mdefault-visibility-export-mapping=none -S -emit-llvm -o - | \
2 // RUN:   FileCheck -check-prefixes=UNSPECIFIED-DEF,EXPLICIT-DEF,FUND-DEF %s
3 // RUN: %clang_cc1 -triple powerpc64-ibm-aix %s -internal-isystem %S -mdefault-visibility-export-mapping=explicit -S -emit-llvm -o - | \
4 // RUN:   FileCheck -check-prefixes=UNSPECIFIED-DEF,EXPLICIT-EXP,FUND-DEF %s
5 // RUN: %clang_cc1 -triple powerpc64-ibm-aix %s -internal-isystem %S -mdefault-visibility-export-mapping=explicit -DFUNDAMENTAL_IS_EXPLICIT -S -emit-llvm -o - | \
6 // RUN:   FileCheck -check-prefixes=UNSPECIFIED-DEF,EXPLICIT-EXP,FUND-EXP %s
7 // RUN: %clang_cc1 -triple powerpc64-ibm-aix %s -internal-isystem %S -mdefault-visibility-export-mapping=all -S -emit-llvm -o - | \
8 // RUN:   FileCheck -check-prefixes=UNSPECIFIED-EXP,EXPLICIT-EXP,FUND-EXP %s
9 // RUN: %clang_cc1 -triple powerpc64-ibm-aix %s -internal-isystem %S -mdefault-visibility-export-mapping=all -fvisibility hidden -S -emit-llvm -o - | \
10 // RUN:   FileCheck -check-prefixes=UNSPECIFIED-HID,EXPLICIT-EXP,FUND-HID %s
11 // RUN: %clang_cc1 -triple powerpc64-ibm-aix %s -internal-isystem %S -mdefault-visibility-export-mapping=all -DFUNDAMENTAL_IS_EXPLICIT -fvisibility hidden -S -emit-llvm -o - | \
12 // RUN:   FileCheck -check-prefixes=UNSPECIFIED-HID,EXPLICIT-EXP,FUND-EXP %s
13 
14 #include <typeinfo>
15 
16 // unspecified visibility RTTI & vtable
17 struct s {
18   virtual void foo();
19 };
20 void s::foo() {}
21 // UNSPECIFIED-DEF: @_ZTV1s = unnamed_addr constant
22 // UNSPECIFIED-HID: @_ZTV1s = hidden unnamed_addr constant
23 // UNSPECIFIED-EXP: @_ZTV1s = dllexport unnamed_addr constant
24 // UNSPECIFIED-DEF: @_ZTS1s = constant
25 // UNSPECIFIED-HID: @_ZTS1s = hidden constant
26 // UNSPECIFIED-EXP: @_ZTS1s = dllexport constant
27 // UNSPECIFIED-DEF: @_ZTI1s = constant
28 // UNSPECIFIED-HID: @_ZTI1s = hidden constant
29 // UNSPECIFIED-EXP: @_ZTI1s = dllexport constant
30 
31 // explicit default visibility RTTI & vtable
32 struct __attribute__((type_visibility("default"))) t {
33   virtual void foo();
34 };
35 void t::foo() {}
36 // EXPLICIT-DEF: @_ZTV1t = unnamed_addr constant
37 // EXPLICIT-HID: @_ZTV1t = hidden unnamed_addr constant
38 // EXPLICIT-EXP: @_ZTV1t = dllexport unnamed_addr constant
39 // EXPLICIT-DEF: @_ZTS1t = constant
40 // EXPLICIT-HID: @_ZTS1t = hidden constant
41 // EXPLICIT-EXP: @_ZTS1t = dllexport constant
42 // EXPLICIT-DEF: @_ZTI1t = constant
43 // EXPLICIT-HID: @_ZTI1t = hidden constant
44 // EXPLICIT-EXP: @_ZTI1t = dllexport constant
45 
46 #ifdef FUNDAMENTAL_IS_EXPLICIT
47 #define TYPE_VIS __attribute__((type_visibility("default")))
48 #else
49 #define TYPE_VIS
50 #endif
51 
52 // Invoke the compiler magic to emit RTTI for fundamental types.
53 namespace __cxxabiv1 {
54 class TYPE_VIS __fundamental_type_info {
55   __attribute__((visibility("hidden"))) virtual ~__fundamental_type_info();
56 };
57 
58 __fundamental_type_info::~__fundamental_type_info() {}
59 
60 } // namespace __cxxabiv1
61 
62 // __cxxabiv1::__fundamental_type_info
63 // FUND-DEF: @_ZTVN10__cxxabiv123__fundamental_type_infoE = unnamed_addr constant
64 // FUND-DEF: @_ZTSN10__cxxabiv123__fundamental_type_infoE = constant
65 // FUND-DEF: @_ZTIN10__cxxabiv123__fundamental_type_infoE = constant
66 // FUND-HID: @_ZTVN10__cxxabiv123__fundamental_type_infoE = hidden unnamed_addr constant
67 // FUND-HID: @_ZTSN10__cxxabiv123__fundamental_type_infoE = hidden constant
68 // FUND-HID: @_ZTIN10__cxxabiv123__fundamental_type_infoE = hidden constant
69 // FUND-EXP: @_ZTVN10__cxxabiv123__fundamental_type_infoE = dllexport unnamed_addr constant
70 // FUND-EXP: @_ZTSN10__cxxabiv123__fundamental_type_infoE = dllexport constant
71 // FUND-EXP: @_ZTIN10__cxxabiv123__fundamental_type_infoE = dllexport constant
72 
73 // void
74 // FUND-DEF: @_ZTSv = constant
75 // FUND-DEF: @_ZTIv = constant
76 // FUND-DEF: @_ZTSPv = constant
77 // FUND-DEF: @_ZTIPv = constant
78 // FUND-DEF: @_ZTSPKv = constant
79 // FUND-DEF: @_ZTIPKv = constant
80 // FUND-HID: @_ZTSv = hidden constant
81 // FUND-HID: @_ZTIv = hidden constant
82 // FUND-HID: @_ZTSPv = hidden constant
83 // FUND-HID: @_ZTIPv = hidden constant
84 // FUND-HID: @_ZTSPKv = hidden constant
85 // FUND-HID: @_ZTIPKv = hidden constant
86 // FUND-EXP: @_ZTSv = dllexport constant
87 // FUND-EXP: @_ZTIv = dllexport constant
88 // FUND-EXP: @_ZTSPv = dllexport constant
89 // FUND-EXP: @_ZTIPv = dllexport constant
90 // FUND-EXP: @_ZTSPKv = dllexport constant
91 // FUND-EXP: @_ZTIPKv = dllexport constant
92 
93 // std::nullptr_t
94 // FUND-DEF: @_ZTSDn = constant
95 // FUND-DEF: @_ZTIDn = constant
96 // FUND-DEF: @_ZTSPDn = constant
97 // FUND-DEF: @_ZTIPDn = constant
98 // FUND-DEF: @_ZTSPKDn = constant
99 // FUND-DEF: @_ZTIPKDn = constant
100 // FUND-HID: @_ZTSDn = hidden constant
101 // FUND-HID: @_ZTIDn = hidden constant
102 // FUND-HID: @_ZTSPDn = hidden constant
103 // FUND-HID: @_ZTIPDn = hidden constant
104 // FUND-HID: @_ZTSPKDn = hidden constant
105 // FUND-HID: @_ZTIPKDn = hidden constant
106 // FUND-EXP: @_ZTSDn = dllexport constant
107 // FUND-EXP: @_ZTIDn = dllexport constant
108 // FUND-EXP: @_ZTSPDn = dllexport constant
109 // FUND-EXP: @_ZTIPDn = dllexport constant
110 // FUND-EXP: @_ZTSPKDn = dllexport constant
111 // FUND-EXP: @_ZTIPKDn = dllexport constant
112 
113 // bool
114 // FUND-DEF: @_ZTSb = constant
115 // FUND-DEF: @_ZTIb = constant
116 // FUND-DEF: @_ZTSPb = constant
117 // FUND-DEF: @_ZTIPb = constant
118 // FUND-DEF: @_ZTSPKb = constant
119 // FUND-DEF: @_ZTIPKb = constant
120 // FUND-HID: @_ZTSb = hidden constant
121 // FUND-HID: @_ZTIb = hidden constant
122 // FUND-HID: @_ZTSPb = hidden constant
123 // FUND-HID: @_ZTIPb = hidden constant
124 // FUND-HID: @_ZTSPKb = hidden constant
125 // FUND-HID: @_ZTIPKb = hidden constant
126 // FUND-EXP: @_ZTSb = dllexport constant
127 // FUND-EXP: @_ZTIb = dllexport constant
128 // FUND-EXP: @_ZTSPb = dllexport constant
129 // FUND-EXP: @_ZTIPb = dllexport constant
130 // FUND-EXP: @_ZTSPKb = dllexport constant
131 // FUND-EXP: @_ZTIPKb = dllexport constant
132 
133 // wchar_t
134 // FUND-DEF: @_ZTSw = constant
135 // FUND-DEF: @_ZTIw = constant
136 // FUND-DEF: @_ZTSPw = constant
137 // FUND-DEF: @_ZTIPw = constant
138 // FUND-DEF: @_ZTSPKw = constant
139 // FUND-DEF: @_ZTIPKw = constant
140 // FUND-HID: @_ZTSw = hidden constant
141 // FUND-HID: @_ZTIw = hidden constant
142 // FUND-HID: @_ZTSPw = hidden constant
143 // FUND-HID: @_ZTIPw = hidden constant
144 // FUND-HID: @_ZTSPKw = hidden constant
145 // FUND-HID: @_ZTIPKw = hidden constant
146 // FUND-EXP: @_ZTSw = dllexport constant
147 // FUND-EXP: @_ZTIw = dllexport constant
148 // FUND-EXP: @_ZTSPw = dllexport constant
149 // FUND-EXP: @_ZTIPw = dllexport constant
150 // FUND-EXP: @_ZTSPKw = dllexport constant
151 // FUND-EXP: @_ZTIPKw = dllexport constant
152 
153 // char
154 // FUND-DEF: @_ZTSc = constant
155 // FUND-DEF: @_ZTIc = constant
156 // FUND-DEF: @_ZTSPc = constant
157 // FUND-DEF: @_ZTIPc = constant
158 // FUND-DEF: @_ZTSPKc = constant
159 // FUND-DEF: @_ZTIPKc = constant
160 // FUND-HID: @_ZTSc = hidden constant
161 // FUND-HID: @_ZTIc = hidden constant
162 // FUND-HID: @_ZTSPc = hidden constant
163 // FUND-HID: @_ZTIPc = hidden constant
164 // FUND-HID: @_ZTSPKc = hidden constant
165 // FUND-HID: @_ZTIPKc = hidden constant
166 // FUND-EXP: @_ZTSc = dllexport constant
167 // FUND-EXP: @_ZTIc = dllexport constant
168 // FUND-EXP: @_ZTSPc = dllexport constant
169 // FUND-EXP: @_ZTIPc = dllexport constant
170 // FUND-EXP: @_ZTSPKc = dllexport constant
171 // FUND-EXP: @_ZTIPKc = dllexport constant
172 
173 // unsigned char
174 // FUND-DEF: @_ZTSh = constant
175 // FUND-DEF: @_ZTIh = constant
176 // FUND-DEF: @_ZTSPh = constant
177 // FUND-DEF: @_ZTIPh = constant
178 // FUND-DEF: @_ZTSPKh = constant
179 // FUND-DEF: @_ZTIPKh = constant
180 // FUND-HID: @_ZTSh = hidden constant
181 // FUND-HID: @_ZTIh = hidden constant
182 // FUND-HID: @_ZTSPh = hidden constant
183 // FUND-HID: @_ZTIPh = hidden constant
184 // FUND-HID: @_ZTSPKh = hidden constant
185 // FUND-HID: @_ZTIPKh = hidden constant
186 // FUND-EXP: @_ZTSh = dllexport constant
187 // FUND-EXP: @_ZTIh = dllexport constant
188 // FUND-EXP: @_ZTSPh = dllexport constant
189 // FUND-EXP: @_ZTIPh = dllexport constant
190 // FUND-EXP: @_ZTSPKh = dllexport constant
191 // FUND-EXP: @_ZTIPKh = dllexport constant
192 
193 // signed char
194 // FUND-DEF: @_ZTSa = constant
195 // FUND-DEF: @_ZTIa = constant
196 // FUND-DEF: @_ZTSPa = constant
197 // FUND-DEF: @_ZTIPa = constant
198 // FUND-DEF: @_ZTSPKa = constant
199 // FUND-DEF: @_ZTIPKa = constant
200 // FUND-HID: @_ZTSa = hidden constant
201 // FUND-HID: @_ZTIa = hidden constant
202 // FUND-HID: @_ZTSPa = hidden constant
203 // FUND-HID: @_ZTIPa = hidden constant
204 // FUND-HID: @_ZTSPKa = hidden constant
205 // FUND-HID: @_ZTIPKa = hidden constant
206 // FUND-EXP: @_ZTSa = dllexport constant
207 // FUND-EXP: @_ZTIa = dllexport constant
208 // FUND-EXP: @_ZTSPa = dllexport constant
209 // FUND-EXP: @_ZTIPa = dllexport constant
210 // FUND-EXP: @_ZTSPKa = dllexport constant
211 // FUND-EXP: @_ZTIPKa = dllexport constant
212 
213 // short
214 // FUND-DEF: @_ZTSs = constant
215 // FUND-DEF: @_ZTIs = constant
216 // FUND-DEF: @_ZTSPs = constant
217 // FUND-DEF: @_ZTIPs = constant
218 // FUND-DEF: @_ZTSPKs = constant
219 // FUND-DEF: @_ZTIPKs = constant
220 // FUND-HID: @_ZTSs = hidden constant
221 // FUND-HID: @_ZTIs = hidden constant
222 // FUND-HID: @_ZTSPs = hidden constant
223 // FUND-HID: @_ZTIPs = hidden constant
224 // FUND-HID: @_ZTSPKs = hidden constant
225 // FUND-HID: @_ZTIPKs = hidden constant
226 // FUND-EXP: @_ZTSs = dllexport constant
227 // FUND-EXP: @_ZTIs = dllexport constant
228 // FUND-EXP: @_ZTSPs = dllexport constant
229 // FUND-EXP: @_ZTIPs = dllexport constant
230 // FUND-EXP: @_ZTSPKs = dllexport constant
231 // FUND-EXP: @_ZTIPKs = dllexport constant
232 
233 // unsigned short
234 // FUND-DEF: @_ZTSt = constant
235 // FUND-DEF: @_ZTIt = constant
236 // FUND-DEF: @_ZTSPt = constant
237 // FUND-DEF: @_ZTIPt = constant
238 // FUND-DEF: @_ZTSPKt = constant
239 // FUND-DEF: @_ZTIPKt = constant
240 // FUND-HID: @_ZTSt = hidden constant
241 // FUND-HID: @_ZTIt = hidden constant
242 // FUND-HID: @_ZTSPt = hidden constant
243 // FUND-HID: @_ZTIPt = hidden constant
244 // FUND-HID: @_ZTSPKt = hidden constant
245 // FUND-HID: @_ZTIPKt = hidden constant
246 // FUND-EXP: @_ZTSt = dllexport constant
247 // FUND-EXP: @_ZTIt = dllexport constant
248 // FUND-EXP: @_ZTSPt = dllexport constant
249 // FUND-EXP: @_ZTIPt = dllexport constant
250 // FUND-EXP: @_ZTSPKt = dllexport constant
251 // FUND-EXP: @_ZTIPKt = dllexport constant
252 
253 // int
254 // FUND-DEF: @_ZTSi = constant
255 // FUND-DEF: @_ZTIi = constant
256 // FUND-DEF: @_ZTSPi = constant
257 // FUND-DEF: @_ZTIPi = constant
258 // FUND-DEF: @_ZTSPKi = constant
259 // FUND-DEF: @_ZTIPKi = constant
260 // FUND-HID: @_ZTSi = hidden constant
261 // FUND-HID: @_ZTIi = hidden constant
262 // FUND-HID: @_ZTSPi = hidden constant
263 // FUND-HID: @_ZTIPi = hidden constant
264 // FUND-HID: @_ZTSPKi = hidden constant
265 // FUND-HID: @_ZTIPKi = hidden constant
266 // FUND-EXP: @_ZTSi = dllexport constant
267 // FUND-EXP: @_ZTIi = dllexport constant
268 // FUND-EXP: @_ZTSPi = dllexport constant
269 // FUND-EXP: @_ZTIPi = dllexport constant
270 // FUND-EXP: @_ZTSPKi = dllexport constant
271 // FUND-EXP: @_ZTIPKi = dllexport constant
272 
273 // unsigned int
274 // FUND-DEF: @_ZTSj = constant
275 // FUND-DEF: @_ZTIj = constant
276 // FUND-DEF: @_ZTSPj = constant
277 // FUND-DEF: @_ZTIPj = constant
278 // FUND-DEF: @_ZTSPKj = constant
279 // FUND-DEF: @_ZTIPKj = constant
280 // FUND-HID: @_ZTSj = hidden constant
281 // FUND-HID: @_ZTIj = hidden constant
282 // FUND-HID: @_ZTSPj = hidden constant
283 // FUND-HID: @_ZTIPj = hidden constant
284 // FUND-HID: @_ZTSPKj = hidden constant
285 // FUND-HID: @_ZTIPKj = hidden constant
286 // FUND-EXP: @_ZTSj = dllexport constant
287 // FUND-EXP: @_ZTIj = dllexport constant
288 // FUND-EXP: @_ZTSPj = dllexport constant
289 // FUND-EXP: @_ZTIPj = dllexport constant
290 // FUND-EXP: @_ZTSPKj = dllexport constant
291 // FUND-EXP: @_ZTIPKj = dllexport constant
292 
293 // long
294 // FUND-DEF: @_ZTSl = constant
295 // FUND-DEF: @_ZTIl = constant
296 // FUND-DEF: @_ZTSPl = constant
297 // FUND-DEF: @_ZTIPl = constant
298 // FUND-DEF: @_ZTSPKl = constant
299 // FUND-DEF: @_ZTIPKl = constant
300 // FUND-HID: @_ZTSl = hidden constant
301 // FUND-HID: @_ZTIl = hidden constant
302 // FUND-HID: @_ZTSPl = hidden constant
303 // FUND-HID: @_ZTIPl = hidden constant
304 // FUND-HID: @_ZTSPKl = hidden constant
305 // FUND-HID: @_ZTIPKl = hidden constant
306 // FUND-EXP: @_ZTSl = dllexport constant
307 // FUND-EXP: @_ZTIl = dllexport constant
308 // FUND-EXP: @_ZTSPl = dllexport constant
309 // FUND-EXP: @_ZTIPl = dllexport constant
310 // FUND-EXP: @_ZTSPKl = dllexport constant
311 // FUND-EXP: @_ZTIPKl = dllexport constant
312 
313 // unsigned long
314 // FUND-DEF: @_ZTSm = constant
315 // FUND-DEF: @_ZTIm = constant
316 // FUND-DEF: @_ZTSPm = constant
317 // FUND-DEF: @_ZTIPm = constant
318 // FUND-DEF: @_ZTSPKm = constant
319 // FUND-DEF: @_ZTIPKm = constant
320 // FUND-HID: @_ZTSm = hidden constant
321 // FUND-HID: @_ZTIm = hidden constant
322 // FUND-HID: @_ZTSPm = hidden constant
323 // FUND-HID: @_ZTIPm = hidden constant
324 // FUND-HID: @_ZTSPKm = hidden constant
325 // FUND-HID: @_ZTIPKm = hidden constant
326 // FUND-EXP: @_ZTSm = dllexport constant
327 // FUND-EXP: @_ZTIm = dllexport constant
328 // FUND-EXP: @_ZTSPm = dllexport constant
329 // FUND-EXP: @_ZTIPm = dllexport constant
330 // FUND-EXP: @_ZTSPKm = dllexport constant
331 // FUND-EXP: @_ZTIPKm = dllexport constant
332 
333 // long long
334 // FUND-DEF: @_ZTSx = constant
335 // FUND-DEF: @_ZTIx = constant
336 // FUND-DEF: @_ZTSPx = constant
337 // FUND-DEF: @_ZTIPx = constant
338 // FUND-DEF: @_ZTSPKx = constant
339 // FUND-DEF: @_ZTIPKx = constant
340 // FUND-HID: @_ZTSx = hidden constant
341 // FUND-HID: @_ZTIx = hidden constant
342 // FUND-HID: @_ZTSPx = hidden constant
343 // FUND-HID: @_ZTIPx = hidden constant
344 // FUND-HID: @_ZTSPKx = hidden constant
345 // FUND-HID: @_ZTIPKx = hidden constant
346 // FUND-EXP: @_ZTSx = dllexport constant
347 // FUND-EXP: @_ZTIx = dllexport constant
348 // FUND-EXP: @_ZTSPx = dllexport constant
349 // FUND-EXP: @_ZTIPx = dllexport constant
350 // FUND-EXP: @_ZTSPKx = dllexport constant
351 // FUND-EXP: @_ZTIPKx = dllexport constant
352 
353 // unsigned long long
354 // FUND-DEF: @_ZTSy = constant
355 // FUND-DEF: @_ZTIy = constant
356 // FUND-DEF: @_ZTSPy = constant
357 // FUND-DEF: @_ZTIPy = constant
358 // FUND-DEF: @_ZTSPKy = constant
359 // FUND-DEF: @_ZTIPKy = constant
360 // FUND-HID: @_ZTSy = hidden constant
361 // FUND-HID: @_ZTIy = hidden constant
362 // FUND-HID: @_ZTSPy = hidden constant
363 // FUND-HID: @_ZTIPy = hidden constant
364 // FUND-HID: @_ZTSPKy = hidden constant
365 // FUND-HID: @_ZTIPKy = hidden constant
366 // FUND-EXP: @_ZTSy = dllexport constant
367 // FUND-EXP: @_ZTIy = dllexport constant
368 // FUND-EXP: @_ZTSPy = dllexport constant
369 // FUND-EXP: @_ZTIPy = dllexport constant
370 // FUND-EXP: @_ZTSPKy = dllexport constant
371 // FUND-EXP: @_ZTIPKy = dllexport constant
372 
373 // __int128
374 // FUND-DEF: @_ZTSn = constant
375 // FUND-DEF: @_ZTIn = constant
376 // FUND-DEF: @_ZTSPn = constant
377 // FUND-DEF: @_ZTIPn = constant
378 // FUND-DEF: @_ZTSPKn = constant
379 // FUND-DEF: @_ZTIPKn = constant
380 // FUND-HID: @_ZTSn = hidden constant
381 // FUND-HID: @_ZTIn = hidden constant
382 // FUND-HID: @_ZTSPn = hidden constant
383 // FUND-HID: @_ZTIPn = hidden constant
384 // FUND-HID: @_ZTSPKn = hidden constant
385 // FUND-HID: @_ZTIPKn = hidden constant
386 // FUND-EXP: @_ZTSn = dllexport constant
387 // FUND-EXP: @_ZTIn = dllexport constant
388 // FUND-EXP: @_ZTSPn = dllexport constant
389 // FUND-EXP: @_ZTIPn = dllexport constant
390 // FUND-EXP: @_ZTSPKn = dllexport constant
391 // FUND-EXP: @_ZTIPKn = dllexport constant
392 
393 // unsigned __int128
394 // FUND-DEF: @_ZTSo = constant
395 // FUND-DEF: @_ZTIo = constant
396 // FUND-DEF: @_ZTSPo = constant
397 // FUND-DEF: @_ZTIPo = constant
398 // FUND-DEF: @_ZTSPKo = constant
399 // FUND-DEF: @_ZTIPKo = constant
400 // FUND-HID: @_ZTSo = hidden constant
401 // FUND-HID: @_ZTIo = hidden constant
402 // FUND-HID: @_ZTSPo = hidden constant
403 // FUND-HID: @_ZTIPo = hidden constant
404 // FUND-HID: @_ZTSPKo = hidden constant
405 // FUND-HID: @_ZTIPKo = hidden constant
406 // FUND-EXP: @_ZTSo = dllexport constant
407 // FUND-EXP: @_ZTIo = dllexport constant
408 // FUND-EXP: @_ZTSPo = dllexport constant
409 // FUND-EXP: @_ZTIPo = dllexport constant
410 // FUND-EXP: @_ZTSPKo = dllexport constant
411 // FUND-EXP: @_ZTIPKo = dllexport constant
412 
413 // half
414 // FUND-DEF: @_ZTSDh = constant
415 // FUND-DEF: @_ZTIDh = constant
416 // FUND-DEF: @_ZTSPDh = constant
417 // FUND-DEF: @_ZTIPDh = constant
418 // FUND-DEF: @_ZTSPKDh = constant
419 // FUND-DEF: @_ZTIPKDh = constant
420 // FUND-HID: @_ZTSDh = hidden constant
421 // FUND-HID: @_ZTIDh = hidden constant
422 // FUND-HID: @_ZTSPDh = hidden constant
423 // FUND-HID: @_ZTIPDh = hidden constant
424 // FUND-HID: @_ZTSPKDh = hidden constant
425 // FUND-HID: @_ZTIPKDh = hidden constant
426 // FUND-EXP: @_ZTSDh = dllexport constant
427 // FUND-EXP: @_ZTIDh = dllexport constant
428 // FUND-EXP: @_ZTSPDh = dllexport constant
429 // FUND-EXP: @_ZTIPDh = dllexport constant
430 // FUND-EXP: @_ZTSPKDh = dllexport constant
431 // FUND-EXP: @_ZTIPKDh = dllexport constant
432 
433 // float
434 // FUND-DEF: @_ZTSf = constant
435 // FUND-DEF: @_ZTIf = constant
436 // FUND-DEF: @_ZTSPf = constant
437 // FUND-DEF: @_ZTIPf = constant
438 // FUND-DEF: @_ZTSPKf = constant
439 // FUND-DEF: @_ZTIPKf = constant
440 // FUND-HID: @_ZTSf = hidden constant
441 // FUND-HID: @_ZTIf = hidden constant
442 // FUND-HID: @_ZTSPf = hidden constant
443 // FUND-HID: @_ZTIPf = hidden constant
444 // FUND-HID: @_ZTSPKf = hidden constant
445 // FUND-HID: @_ZTIPKf = hidden constant
446 // FUND-EXP: @_ZTSf = dllexport constant
447 // FUND-EXP: @_ZTIf = dllexport constant
448 // FUND-EXP: @_ZTSPf = dllexport constant
449 // FUND-EXP: @_ZTIPf = dllexport constant
450 // FUND-EXP: @_ZTSPKf = dllexport constant
451 // FUND-EXP: @_ZTIPKf = dllexport constant
452 
453 // double
454 // FUND-DEF: @_ZTSd = constant
455 // FUND-DEF: @_ZTId = constant
456 // FUND-DEF: @_ZTSPd = constant
457 // FUND-DEF: @_ZTIPd = constant
458 // FUND-DEF: @_ZTSPKd = constant
459 // FUND-DEF: @_ZTIPKd = constant
460 // FUND-HID: @_ZTSd = hidden constant
461 // FUND-HID: @_ZTId = hidden constant
462 // FUND-HID: @_ZTSPd = hidden constant
463 // FUND-HID: @_ZTIPd = hidden constant
464 // FUND-HID: @_ZTSPKd = hidden constant
465 // FUND-HID: @_ZTIPKd = hidden constant
466 // FUND-EXP: @_ZTSd = dllexport constant
467 // FUND-EXP: @_ZTId = dllexport constant
468 // FUND-EXP: @_ZTSPd = dllexport constant
469 // FUND-EXP: @_ZTIPd = dllexport constant
470 // FUND-EXP: @_ZTSPKd = dllexport constant
471 // FUND-EXP: @_ZTIPKd = dllexport constant
472 
473 // long double
474 // FUND-DEF: @_ZTSe = constant
475 // FUND-DEF: @_ZTIe = constant
476 // FUND-DEF: @_ZTSPe = constant
477 // FUND-DEF: @_ZTIPe = constant
478 // FUND-DEF: @_ZTSPKe = constant
479 // FUND-DEF: @_ZTIPKe = constant
480 // FUND-HID: @_ZTSe = hidden constant
481 // FUND-HID: @_ZTIe = hidden constant
482 // FUND-HID: @_ZTSPe = hidden constant
483 // FUND-HID: @_ZTIPe = hidden constant
484 // FUND-HID: @_ZTSPKe = hidden constant
485 // FUND-HID: @_ZTIPKe = hidden constant
486 // FUND-EXP: @_ZTSe = dllexport constant
487 // FUND-EXP: @_ZTIe = dllexport constant
488 // FUND-EXP: @_ZTSPe = dllexport constant
489 // FUND-EXP: @_ZTIPe = dllexport constant
490 // FUND-EXP: @_ZTSPKe = dllexport constant
491 // FUND-EXP: @_ZTIPKe = dllexport constant
492 
493 // __ieee128
494 // FUND-DEF: @_ZTSu9__ieee128 = constant
495 // FUND-DEF: @_ZTIu9__ieee128 = constant
496 // FUND-DEF: @_ZTSPu9__ieee128 = constant
497 // FUND-DEF: @_ZTIPu9__ieee128 = constant
498 // FUND-DEF: @_ZTSPKu9__ieee128 = constant
499 // FUND-DEF: @_ZTIPKu9__ieee128 = constant
500 // FUND-HID: @_ZTSu9__ieee128 = hidden constant
501 // FUND-HID: @_ZTIu9__ieee128 = hidden constant
502 // FUND-HID: @_ZTSPu9__ieee128 = hidden constant
503 // FUND-HID: @_ZTIPu9__ieee128 = hidden constant
504 // FUND-HID: @_ZTSPKu9__ieee128 = hidden constant
505 // FUND-HID: @_ZTIPKu9__ieee128 = hidden constant
506 // FUND-EXP: @_ZTSu9__ieee128 = dllexport constant
507 // FUND-EXP: @_ZTIu9__ieee128 = dllexport constant
508 // FUND-EXP: @_ZTSPu9__ieee128 = dllexport constant
509 // FUND-EXP: @_ZTIPu9__ieee128 = dllexport constant
510 // FUND-EXP: @_ZTSPKu9__ieee128 = dllexport constant
511 // FUND-EXP: @_ZTIPKu9__ieee128 = dllexport constant
512 
513 // char8_t
514 // FUND-DEF: @_ZTSDu = constant
515 // FUND-DEF: @_ZTIDu = constant
516 // FUND-DEF: @_ZTSPDu = constant
517 // FUND-DEF: @_ZTIPDu = constant
518 // FUND-DEF: @_ZTSPKDu = constant
519 // FUND-DEF: @_ZTIPKDu = constant
520 // FUND-HID: @_ZTSDu = hidden constant
521 // FUND-HID: @_ZTIDu = hidden constant
522 // FUND-HID: @_ZTSPDu = hidden constant
523 // FUND-HID: @_ZTIPDu = hidden constant
524 // FUND-HID: @_ZTSPKDu = hidden constant
525 // FUND-HID: @_ZTIPKDu = hidden constant
526 // FUND-EXP: @_ZTSDu = dllexport constant
527 // FUND-EXP: @_ZTIDu = dllexport constant
528 // FUND-EXP: @_ZTSPDu = dllexport constant
529 // FUND-EXP: @_ZTIPDu = dllexport constant
530 // FUND-EXP: @_ZTSPKDu = dllexport constant
531 // FUND-EXP: @_ZTIPKDu = dllexport constant
532 
533 // char16_t
534 // FUND-DEF: @_ZTSDs = constant
535 // FUND-DEF: @_ZTIDs = constant
536 // FUND-DEF: @_ZTSPDs = constant
537 // FUND-DEF: @_ZTIPDs = constant
538 // FUND-DEF: @_ZTSPKDs = constant
539 // FUND-DEF: @_ZTIPKDs = constant
540 // FUND-HID: @_ZTSDs = hidden constant
541 // FUND-HID: @_ZTIDs = hidden constant
542 // FUND-HID: @_ZTSPDs = hidden constant
543 // FUND-HID: @_ZTIPDs = hidden constant
544 // FUND-HID: @_ZTSPKDs = hidden constant
545 // FUND-HID: @_ZTIPKDs = hidden constant
546 // FUND-EXP: @_ZTSDs = dllexport constant
547 // FUND-EXP: @_ZTIDs = dllexport constant
548 // FUND-EXP: @_ZTSPDs = dllexport constant
549 // FUND-EXP: @_ZTIPDs = dllexport constant
550 // FUND-EXP: @_ZTSPKDs = dllexport constant
551 // FUND-EXP: @_ZTIPKDs = dllexport constant
552 
553 // char32_t
554 // FUND-DEF: @_ZTSDi = constant
555 // FUND-DEF: @_ZTIDi = constant
556 // FUND-DEF: @_ZTSPDi = constant
557 // FUND-DEF: @_ZTIPDi = constant
558 // FUND-DEF: @_ZTSPKDi = constant
559 // FUND-DEF: @_ZTIPKDi = constant
560 // FUND-HID: @_ZTSDi = hidden constant
561 // FUND-HID: @_ZTIDi = hidden constant
562 // FUND-HID: @_ZTSPDi = hidden constant
563 // FUND-HID: @_ZTIPDi = hidden constant
564 // FUND-HID: @_ZTSPKDi = hidden constant
565 // FUND-HID: @_ZTIPKDi = hidden constant
566 // FUND-EXP: @_ZTSDi = dllexport constant
567 // FUND-EXP: @_ZTIDi = dllexport constant
568 // FUND-EXP: @_ZTSPDi = dllexport constant
569 // FUND-EXP: @_ZTIPDi = dllexport constant
570 // FUND-EXP: @_ZTSPKDi = dllexport constant
571 // FUND-EXP: @_ZTIPKDi = dllexport constant
572