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