Coverage Report

Created: 2017-05-30 22:54

/Users/buildslave/jenkins/sharedspace/clang-stage2-coverage-R@2/llvm/include/llvm/DebugInfo/CodeView/TypeRecords.def
Line
Count
Source (jump to first uncovered line)
1
75
2
75
//===-- CVLeafTypes.def - All CodeView leaf types ---------------*- C++ -*-===//
3
75
//
4
75
//                     The LLVM Compiler Infrastructure
5
75
//
6
75
// This file is distributed under the University of Illinois Open Source
7
75
// License. See LICENSE.TXT for details.
8
75
//
9
75
//===----------------------------------------------------------------------===//
10
75
//
11
75
// See LEAF_ENUM_e in cvinfo.h. This should match the constants there.
12
75
//
13
75
//===----------------------------------------------------------------------===//
14
75
15
75
// If the type is known, then we have a record describing it in TypeRecord.h.
16
75
17
75
#ifndef CV_TYPE
18
75
#define CV_TYPE(lf_ename, value)
19
75
#endif
20
75
21
75
// If the type is known, then we have a record describing it in TypeRecord.h.
22
75
#ifndef TYPE_RECORD
23
#define TYPE_RECORD(lf_ename, value, name) CV_TYPE(lf_ename, value)
24
#endif
25
75
26
75
#ifndef TYPE_RECORD_ALIAS
27
#define TYPE_RECORD_ALIAS(lf_ename, value, name, alias_name)                   \
28
456
  TYPE_RECORD(lf_ename, value, name)
29
#endif
30
75
31
75
#ifndef MEMBER_RECORD
32
7.46k
#define MEMBER_RECORD(lf_ename, value, name) TYPE_RECORD(lf_ename, value, name)
33
#endif
34
75
35
75
#ifndef MEMBER_RECORD_ALIAS
36
#define MEMBER_RECORD_ALIAS(lf_ename, value, name, alias_name)                 \
37
3
  MEMBER_RECORD(lf_ename, value, name)
38
#endif
39
75
40
1.61k
TYPE_RECORD(LF_POINTER, 0x1002, Pointer)
41
305
TYPE_RECORD(LF_MODIFIER, 0x1001, Modifier)
42
885
TYPE_RECORD(LF_PROCEDURE, 0x1008, Procedure)
43
1.32k
TYPE_RECORD(LF_MFUNCTION, 0x1009, MemberFunction)
44
3
TYPE_RECORD(LF_LABEL, 0x000e, Label)
45
1.29k
TYPE_RECORD(LF_ARGLIST, 0x1201, ArgList)
46
971
47
1.49k
TYPE_RECORD(LF_FIELDLIST, 0x1203, FieldList)
48
1.13k
49
347
TYPE_RECORD(LF_ARRAY, 0x1503, Array)
50
110
TYPE_RECORD(LF_CLASS, 0x1504, Class)
51
1.88k
TYPE_RECORD_ALIAS(LF_STRUCTURE, 0x1505, Struct, Class)
52
0
TYPE_RECORD_ALIAS(LF_INTERFACE, 0x1519, Interface, Class)
53
96
TYPE_RECORD(LF_UNION, 0x1506, Union)
54
457
TYPE_RECORD(LF_ENUM, 0x1507, Enum)
55
2
TYPE_RECORD(LF_TYPESERVER2, 0x1515, TypeServer2)
56
23
TYPE_RECORD(LF_VFTABLE, 0x151d, VFTable)
57
64
TYPE_RECORD(LF_VTSHAPE, 0x000a, VFTableShape)
58
47
59
35
TYPE_RECORD(LF_BITFIELD, 0x1205, BitField)
60
27
61
27
// Member type records. These are generally not length prefixed, and appear
62
27
// inside of a field list record.
63
70
MEMBER_RECORD(LF_BCLASS, 0x1400, BaseClass)
64
0
MEMBER_RECORD_ALIAS(LF_BINTERFACE, 0x151a, BaseInterface, BaseClass)
65
0
66
16
MEMBER_RECORD(LF_VBCLASS, 0x1401, VirtualBaseClass)
67
6
MEMBER_RECORD_ALIAS(LF_IVBCLASS, 0x1402, IndirectVirtualBaseClass,
68
3
                    VirtualBaseClass)
69
3
70
32
MEMBER_RECORD(LF_VFUNCTAB, 0x1409, VFPtr)
71
8
MEMBER_RECORD(LF_STMEMBER, 0x150e, StaticDataMember)
72
288
MEMBER_RECORD(LF_METHOD, 0x150f, OverloadedMethod)
73
2.78k
MEMBER_RECORD(LF_MEMBER, 0x150d, DataMember)
74
347
MEMBER_RECORD(LF_NESTTYPE, 0x1510, NestedType)
75
386
MEMBER_RECORD(LF_ONEMETHOD, 0x1511, OneMethod)
76
13.7k
MEMBER_RECORD(LF_ENUMERATE, 0x1502, Enumerator)
77
8
MEMBER_RECORD8
(LF_INDEX, 0x1404, ListContinuation)4
78
4
79
4
// ID leaf records. Subsequent leaf types may be referenced from .debug$S.
80
686
TYPE_RECORD(LF_FUNC_ID, 0x1601, FuncId)
81
173
TYPE_RECORD(LF_MFUNC_ID, 0x1602, MemberFuncId)
82
82
TYPE_RECORD(LF_BUILDINFO, 0x1603, BuildInfo)
83
84
TYPE_RECORD(LF_SUBSTR_LIST, 0x1604, StringList)
84
691
TYPE_RECORD(LF_STRING_ID, 0x1605, StringId)
85
652
TYPE_RECORD(LF_UDT_SRC_LINE, 0x1606, UdtSourceLine)
86
55
TYPE_RECORD(LF_UDT_MOD_SRC_LINE, 0x1607, UdtModSourceLine)
87
38
88
38
89
349
TYPE_RECORD(LF_METHODLIST, 0x1206, MethodOverloadList)
90
87
91
87
92
87
// 16 bit type records.
93
87
CV_TYPE(LF_MODIFIER_16t, 0x0001)
94
87
CV_TYPE(LF_POINTER_16t, 0x0002)
95
87
CV_TYPE(LF_ARRAY_16t, 0x0003)
96
87
CV_TYPE(LF_CLASS_16t, 0x0004)
97
87
CV_TYPE(LF_STRUCTURE_16t, 0x0005)
98
87
CV_TYPE(LF_UNION_16t, 0x0006)
99
87
CV_TYPE(LF_ENUM_16t, 0x0007)
100
87
CV_TYPE(LF_PROCEDURE_16t, 0x0008)
101
87
CV_TYPE(LF_MFUNCTION_16t, 0x0009)
102
87
CV_TYPE(LF_COBOL0_16t, 0x000b)
103
87
CV_TYPE(LF_COBOL1, 0x000c)
104
87
CV_TYPE(LF_BARRAY_16t, 0x000d)
105
87
CV_TYPE(LF_NULLLEAF, 0x000f) // LF_NULL
106
87
CV_TYPE(LF_NOTTRAN, 0x0010)
107
87
CV_TYPE(LF_DIMARRAY_16t, 0x0011)
108
87
CV_TYPE(LF_VFTPATH_16t, 0x0012)
109
87
CV_TYPE(LF_PRECOMP_16t, 0x0013)
110
87
CV_TYPE(LF_ENDPRECOMP, 0x0014)
111
87
CV_TYPE(LF_OEM_16t, 0x0015)
112
87
CV_TYPE(LF_TYPESERVER_ST, 0x0016)
113
87
114
87
CV_TYPE(LF_SKIP_16t, 0x0200)
115
87
CV_TYPE(LF_ARGLIST_16t, 0x0201)
116
87
CV_TYPE(LF_DEFARG_16t, 0x0202)
117
87
CV_TYPE(LF_LIST, 0x0203)
118
87
CV_TYPE(LF_FIELDLIST_16t, 0x0204)
119
87
CV_TYPE(LF_DERIVED_16t, 0x0205)
120
87
CV_TYPE(LF_BITFIELD_16t, 0x0206)
121
87
CV_TYPE(LF_METHODLIST_16t, 0x0207)
122
87
CV_TYPE(LF_DIMCONU_16t, 0x0208)
123
87
CV_TYPE(LF_DIMCONLU_16t, 0x0209)
124
87
CV_TYPE(LF_DIMVARU_16t, 0x020a)
125
87
CV_TYPE(LF_DIMVARLU_16t, 0x020b)
126
87
CV_TYPE(LF_REFSYM, 0x020c)
127
87
128
87
// 16 bit member types. Generally not length prefixed.
129
87
CV_TYPE(LF_BCLASS_16t, 0x0400)
130
87
CV_TYPE(LF_VBCLASS_16t, 0x0401)
131
87
CV_TYPE(LF_IVBCLASS_16t, 0x0402)
132
87
CV_TYPE(LF_ENUMERATE_ST, 0x0403)
133
87
CV_TYPE(LF_FRIENDFCN_16t, 0x0404)
134
87
CV_TYPE(LF_INDEX_16t, 0x0405)
135
87
CV_TYPE(LF_MEMBER_16t, 0x0406)
136
87
CV_TYPE(LF_STMEMBER_16t, 0x0407)
137
87
CV_TYPE(LF_METHOD_16t, 0x0408)
138
87
CV_TYPE(LF_NESTTYPE_16t, 0x0409)
139
87
CV_TYPE(LF_VFUNCTAB_16t, 0x040a)
140
87
CV_TYPE(LF_FRIENDCLS_16t, 0x040b)
141
87
CV_TYPE(LF_ONEMETHOD_16t, 0x040c)
142
87
CV_TYPE(LF_VFUNCOFF_16t, 0x040d)
143
87
144
87
CV_TYPE(LF_TI16_MAX, 0x1000)
145
87
146
87
CV_TYPE(LF_ARRAY_ST, 0x1003)
147
87
CV_TYPE(LF_CLASS_ST, 0x1004)
148
87
CV_TYPE(LF_STRUCTURE_ST, 0x1005)
149
87
CV_TYPE(LF_UNION_ST, 0x1006)
150
87
CV_TYPE(LF_ENUM_ST, 0x1007)
151
87
CV_TYPE(LF_COBOL0, 0x100a)
152
87
CV_TYPE(LF_BARRAY, 0x100b)
153
87
CV_TYPE(LF_DIMARRAY_ST, 0x100c)
154
87
CV_TYPE(LF_VFTPATH, 0x100d)
155
87
CV_TYPE(LF_PRECOMP_ST, 0x100e)
156
87
CV_TYPE(LF_OEM, 0x100f)
157
87
CV_TYPE(LF_ALIAS_ST, 0x1010)
158
87
CV_TYPE(LF_OEM2, 0x1011)
159
87
160
87
CV_TYPE(LF_SKIP, 0x1200)
161
87
CV_TYPE(LF_DEFARG_ST, 0x1202)
162
87
CV_TYPE(LF_DERIVED, 0x1204)
163
87
CV_TYPE(LF_DIMCONU, 0x1207)
164
87
CV_TYPE(LF_DIMCONLU, 0x1208)
165
87
CV_TYPE(LF_DIMVARU, 0x1209)
166
87
CV_TYPE(LF_DIMVARLU, 0x120a)
167
87
168
87
// Member type records. These are generally not length prefixed, and appear
169
87
// inside of a field list record.
170
87
CV_TYPE(LF_FRIENDFCN_ST, 0x1403)
171
87
CV_TYPE(LF_MEMBER_ST, 0x1405)
172
87
CV_TYPE(LF_STMEMBER_ST, 0x1406)
173
87
CV_TYPE(LF_METHOD_ST, 0x1407)
174
87
CV_TYPE(LF_NESTTYPE_ST, 0x1408)
175
87
CV_TYPE(LF_FRIENDCLS, 0x140a)
176
87
CV_TYPE(LF_ONEMETHOD_ST, 0x140b)
177
87
CV_TYPE(LF_VFUNCOFF, 0x140c)
178
87
CV_TYPE(LF_NESTTYPEEX_ST, 0x140d)
179
87
CV_TYPE(LF_MEMBERMODIFY_ST, 0x140e)
180
87
CV_TYPE(LF_MANAGED_ST, 0x140f)
181
87
182
87
CV_TYPE(LF_ST_MAX, 0x1500)
183
87
CV_TYPE(LF_TYPESERVER, 0x1501)
184
87
CV_TYPE(LF_DIMARRAY, 0x1508)
185
87
CV_TYPE(LF_PRECOMP, 0x1509)
186
87
CV_TYPE(LF_ALIAS, 0x150a)
187
87
CV_TYPE(LF_DEFARG, 0x150b)
188
87
CV_TYPE(LF_FRIENDFCN, 0x150c)
189
87
CV_TYPE(LF_NESTTYPEEX, 0x1512)
190
87
CV_TYPE(LF_MEMBERMODIFY, 0x1513)
191
87
CV_TYPE(LF_MANAGED, 0x1514)
192
87
CV_TYPE(LF_STRIDED_ARRAY, 0x1516)
193
87
CV_TYPE(LF_HLSL, 0x1517)
194
87
CV_TYPE(LF_MODIFIER_EX, 0x1518)
195
87
CV_TYPE(LF_VECTOR, 0x151b)
196
87
CV_TYPE(LF_MATRIX, 0x151c)
197
87
198
87
// ID leaf records. Subsequent leaf types may be referenced from .debug$S.
199
87
200
87
// Numeric leaf types. These are generally contained in other records, and not
201
87
// encountered in the main type stream.
202
87
203
87
CV_TYPE(LF_NUMERIC, 0x8000)
204
87
CV_TYPE(LF_CHAR, 0x8000)
205
87
CV_TYPE(LF_SHORT, 0x8001)
206
87
CV_TYPE(LF_USHORT, 0x8002)
207
87
CV_TYPE(LF_LONG, 0x8003)
208
87
CV_TYPE(LF_ULONG, 0x8004)
209
87
CV_TYPE(LF_REAL32, 0x8005)
210
87
CV_TYPE(LF_REAL64, 0x8006)
211
87
CV_TYPE(LF_REAL80, 0x8007)
212
87
CV_TYPE(LF_REAL128, 0x8008)
213
87
CV_TYPE(LF_QUADWORD, 0x8009)
214
87
CV_TYPE(LF_UQUADWORD, 0x800a)
215
87
CV_TYPE(LF_REAL48, 0x800b)
216
87
CV_TYPE(LF_COMPLEX32, 0x800c)
217
87
CV_TYPE(LF_COMPLEX64, 0x800d)
218
87
CV_TYPE(LF_COMPLEX80, 0x800e)
219
87
CV_TYPE(LF_COMPLEX128, 0x800f)
220
87
CV_TYPE(LF_VARSTRING, 0x8010)
221
87
CV_TYPE(LF_OCTWORD, 0x8017)
222
87
CV_TYPE(LF_UOCTWORD, 0x8018)
223
87
CV_TYPE(LF_DECIMAL, 0x8019)
224
87
CV_TYPE(LF_DATE, 0x801a)
225
87
CV_TYPE(LF_UTF8STRING, 0x801b)
226
87
CV_TYPE(LF_REAL16, 0x801c)
227
87
228
87
// Padding bytes. These are emitted into alignment bytes in the type stream.
229
87
230
87
CV_TYPE(LF_PAD0, 0xf0)
231
87
CV_TYPE(LF_PAD1, 0xf1)
232
87
CV_TYPE(LF_PAD2, 0xf2)
233
87
CV_TYPE(LF_PAD3, 0xf3)
234
87
CV_TYPE(LF_PAD4, 0xf4)
235
87
CV_TYPE(LF_PAD5, 0xf5)
236
87
CV_TYPE(LF_PAD6, 0xf6)
237
87
CV_TYPE(LF_PAD7, 0xf7)
238
87
CV_TYPE(LF_PAD8, 0xf8)
239
87
CV_TYPE(LF_PAD9, 0xf9)
240
87
CV_TYPE(LF_PAD10, 0xfa)
241
87
CV_TYPE(LF_PAD11, 0xfb)
242
87
CV_TYPE(LF_PAD12, 0xfc)
243
87
CV_TYPE(LF_PAD13, 0xfd)
244
87
CV_TYPE(LF_PAD14, 0xfe)
245
87
CV_TYPE(LF_PAD15, 0xff)
246
87
247
87
#undef CV_TYPE
248
87
#undef TYPE_RECORD
249
87
#undef TYPE_RECORD_ALIAS
250
87
#undef MEMBER_RECORD
251
87
#undef MEMBER_RECORD_ALIAS