Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
14 pmbaty 1
//===- llvm/Support/Dwarf.def - Dwarf definitions ---------------*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
//
9
// Macros for running through Dwarf enumerators.
10
//
11
//===----------------------------------------------------------------------===//
12
 
13
// TODO: Add other DW-based macros.
14
#if !(                                                                         \
15
    defined HANDLE_DW_TAG || defined HANDLE_DW_AT || defined HANDLE_DW_FORM || \
16
    defined HANDLE_DW_OP || defined HANDLE_DW_LANG || defined HANDLE_DW_ATE || \
17
    defined HANDLE_DW_VIRTUALITY || defined HANDLE_DW_DEFAULTED ||             \
18
    defined HANDLE_DW_CC || defined HANDLE_DW_LNS || defined HANDLE_DW_LNE ||  \
19
    defined HANDLE_DW_LNCT || defined HANDLE_DW_MACRO ||                       \
20
    defined HANDLE_DW_MACRO_GNU || defined HANDLE_MACRO_FLAG ||                \
21
    defined HANDLE_DW_RLE || defined HANDLE_DW_LLE ||                          \
22
    (defined HANDLE_DW_CFA && defined HANDLE_DW_CFA_PRED) ||                   \
23
    defined HANDLE_DW_APPLE_PROPERTY || defined HANDLE_DW_UT ||                \
24
    defined HANDLE_DWARF_SECTION || defined HANDLE_DW_IDX ||                   \
25
    defined HANDLE_DW_END || defined HANDLE_DW_SECT)
26
#error "Missing macro definition of HANDLE_DW*"
27
#endif
28
 
29
#ifndef HANDLE_DW_TAG
30
#define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR, KIND)
31
#endif
32
 
33
// Note that DW_KIND is not a DWARF concept, but rather a way for us to
34
// generate a list of tags that belong together.
35
#ifndef DW_KIND_NONE
36
#define DW_KIND_NONE 0
37
#endif
38
 
39
#ifndef DW_KIND_TYPE
40
#define DW_KIND_TYPE 1
41
#endif
42
 
43
#ifndef HANDLE_DW_AT
44
#define HANDLE_DW_AT(ID, NAME, VERSION, VENDOR)
45
#endif
46
 
47
#ifndef HANDLE_DW_FORM
48
#define HANDLE_DW_FORM(ID, NAME, VERSION, VENDOR)
49
#endif
50
 
51
#ifndef HANDLE_DW_OP
52
#define HANDLE_DW_OP(ID, NAME, VERSION, VENDOR)
53
#endif
54
 
55
#ifndef HANDLE_DW_LANG
56
#define HANDLE_DW_LANG(ID, NAME, LOWER_BOUND, VERSION, VENDOR)
57
#endif
58
 
59
#ifndef HANDLE_DW_ATE
60
#define HANDLE_DW_ATE(ID, NAME, VERSION, VENDOR)
61
#endif
62
 
63
#ifndef HANDLE_DW_VIRTUALITY
64
#define HANDLE_DW_VIRTUALITY(ID, NAME)
65
#endif
66
 
67
#ifndef HANDLE_DW_DEFAULTED
68
#define HANDLE_DW_DEFAULTED(ID, NAME)
69
#endif
70
 
71
#ifndef HANDLE_DW_CC
72
#define HANDLE_DW_CC(ID, NAME)
73
#endif
74
 
75
#ifndef HANDLE_DW_LNS
76
#define HANDLE_DW_LNS(ID, NAME)
77
#endif
78
 
79
#ifndef HANDLE_DW_LNE
80
#define HANDLE_DW_LNE(ID, NAME)
81
#endif
82
 
83
#ifndef HANDLE_DW_LNCT
84
#define HANDLE_DW_LNCT(ID, NAME)
85
#endif
86
 
87
#ifndef HANDLE_DW_MACRO
88
#define HANDLE_DW_MACRO(ID, NAME)
89
#endif
90
 
91
#ifndef HANDLE_DW_MACRO_GNU
92
#define HANDLE_DW_MACRO_GNU(ID, NAME)
93
#endif
94
 
95
#ifndef HANDLE_MACRO_FLAG
96
#define HANDLE_MACRO_FLAG(ID, NAME)
97
#endif
98
 
99
#ifndef HANDLE_DW_RLE
100
#define HANDLE_DW_RLE(ID, NAME)
101
#endif
102
 
103
#ifndef HANDLE_DW_LLE
104
#define HANDLE_DW_LLE(ID, NAME)
105
#endif
106
 
107
#ifndef HANDLE_DW_CFA
108
#define HANDLE_DW_CFA(ID, NAME)
109
#endif
110
 
111
#ifndef HANDLE_DW_CFA_PRED
112
#define HANDLE_DW_CFA_PRED(ID, NAME, PRED)
113
#endif
114
 
115
#ifndef HANDLE_DW_APPLE_PROPERTY
116
#define HANDLE_DW_APPLE_PROPERTY(ID, NAME)
117
#endif
118
 
119
#ifndef HANDLE_DW_UT
120
#define HANDLE_DW_UT(ID, NAME)
121
#endif
122
 
123
#ifndef HANDLE_DWARF_SECTION
124
#define HANDLE_DWARF_SECTION(ENUM_NAME, ELF_NAME, CMDLINE_NAME, OPTION)
125
#endif
126
 
127
#ifndef HANDLE_DW_IDX
128
#define HANDLE_DW_IDX(ID, NAME)
129
#endif
130
 
131
#ifndef HANDLE_DW_END
132
#define HANDLE_DW_END(ID, NAME)
133
#endif
134
 
135
#ifndef HANDLE_DW_SECT
136
#define HANDLE_DW_SECT(ID, NAME)
137
#endif
138
 
139
HANDLE_DW_TAG(0x0000, null, 2, DWARF, DW_KIND_NONE)
140
HANDLE_DW_TAG(0x0001, array_type, 2, DWARF, DW_KIND_TYPE)
141
HANDLE_DW_TAG(0x0002, class_type, 2, DWARF, DW_KIND_TYPE)
142
HANDLE_DW_TAG(0x0003, entry_point, 2, DWARF, DW_KIND_NONE)
143
HANDLE_DW_TAG(0x0004, enumeration_type, 2, DWARF, DW_KIND_TYPE)
144
HANDLE_DW_TAG(0x0005, formal_parameter, 2, DWARF, DW_KIND_NONE)
145
HANDLE_DW_TAG(0x0008, imported_declaration, 2, DWARF, DW_KIND_NONE)
146
HANDLE_DW_TAG(0x000a, label, 2, DWARF, DW_KIND_NONE)
147
HANDLE_DW_TAG(0x000b, lexical_block, 2, DWARF, DW_KIND_NONE)
148
HANDLE_DW_TAG(0x000d, member, 2, DWARF, DW_KIND_NONE)
149
HANDLE_DW_TAG(0x000f, pointer_type, 2, DWARF, DW_KIND_TYPE)
150
HANDLE_DW_TAG(0x0010, reference_type, 2, DWARF, DW_KIND_TYPE)
151
HANDLE_DW_TAG(0x0011, compile_unit, 2, DWARF, DW_KIND_NONE)
152
HANDLE_DW_TAG(0x0012, string_type, 2, DWARF, DW_KIND_TYPE)
153
HANDLE_DW_TAG(0x0013, structure_type, 2, DWARF, DW_KIND_TYPE)
154
HANDLE_DW_TAG(0x0015, subroutine_type, 2, DWARF, DW_KIND_TYPE)
155
HANDLE_DW_TAG(0x0016, typedef, 2, DWARF, DW_KIND_TYPE)
156
HANDLE_DW_TAG(0x0017, union_type, 2, DWARF, DW_KIND_TYPE)
157
HANDLE_DW_TAG(0x0018, unspecified_parameters, 2, DWARF, DW_KIND_NONE)
158
HANDLE_DW_TAG(0x0019, variant, 2, DWARF, DW_KIND_NONE)
159
HANDLE_DW_TAG(0x001a, common_block, 2, DWARF, DW_KIND_NONE)
160
HANDLE_DW_TAG(0x001b, common_inclusion, 2, DWARF, DW_KIND_NONE)
161
HANDLE_DW_TAG(0x001c, inheritance, 2, DWARF, DW_KIND_NONE)
162
HANDLE_DW_TAG(0x001d, inlined_subroutine, 2, DWARF, DW_KIND_NONE)
163
HANDLE_DW_TAG(0x001e, module, 2, DWARF, DW_KIND_NONE)
164
HANDLE_DW_TAG(0x001f, ptr_to_member_type, 2, DWARF, DW_KIND_TYPE)
165
HANDLE_DW_TAG(0x0020, set_type, 2, DWARF, DW_KIND_TYPE)
166
HANDLE_DW_TAG(0x0021, subrange_type, 2, DWARF, DW_KIND_TYPE)
167
HANDLE_DW_TAG(0x0022, with_stmt, 2, DWARF, DW_KIND_NONE)
168
HANDLE_DW_TAG(0x0023, access_declaration, 2, DWARF, DW_KIND_NONE)
169
HANDLE_DW_TAG(0x0024, base_type, 2, DWARF, DW_KIND_TYPE)
170
HANDLE_DW_TAG(0x0025, catch_block, 2, DWARF, DW_KIND_NONE)
171
HANDLE_DW_TAG(0x0026, const_type, 2, DWARF, DW_KIND_TYPE)
172
HANDLE_DW_TAG(0x0027, constant, 2, DWARF, DW_KIND_NONE)
173
HANDLE_DW_TAG(0x0028, enumerator, 2, DWARF, DW_KIND_NONE)
174
HANDLE_DW_TAG(0x0029, file_type, 2, DWARF, DW_KIND_TYPE)
175
HANDLE_DW_TAG(0x002a, friend, 2, DWARF, DW_KIND_NONE)
176
HANDLE_DW_TAG(0x002b, namelist, 2, DWARF, DW_KIND_NONE)
177
HANDLE_DW_TAG(0x002c, namelist_item, 2, DWARF, DW_KIND_NONE)
178
HANDLE_DW_TAG(0x002d, packed_type, 2, DWARF, DW_KIND_TYPE)
179
HANDLE_DW_TAG(0x002e, subprogram, 2, DWARF, DW_KIND_NONE)
180
HANDLE_DW_TAG(0x002f, template_type_parameter, 2, DWARF, DW_KIND_NONE)
181
HANDLE_DW_TAG(0x0030, template_value_parameter, 2, DWARF, DW_KIND_NONE)
182
HANDLE_DW_TAG(0x0031, thrown_type, 2, DWARF, DW_KIND_TYPE)
183
HANDLE_DW_TAG(0x0032, try_block, 2, DWARF, DW_KIND_NONE)
184
HANDLE_DW_TAG(0x0033, variant_part, 2, DWARF, DW_KIND_NONE)
185
HANDLE_DW_TAG(0x0034, variable, 2, DWARF, DW_KIND_NONE)
186
HANDLE_DW_TAG(0x0035, volatile_type, 2, DWARF, DW_KIND_TYPE)
187
// New in DWARF v3:
188
HANDLE_DW_TAG(0x0036, dwarf_procedure, 3, DWARF, DW_KIND_NONE)
189
HANDLE_DW_TAG(0x0037, restrict_type, 3, DWARF, DW_KIND_TYPE)
190
HANDLE_DW_TAG(0x0038, interface_type, 3, DWARF, DW_KIND_TYPE)
191
HANDLE_DW_TAG(0x0039, namespace, 3, DWARF, DW_KIND_NONE)
192
HANDLE_DW_TAG(0x003a, imported_module, 3, DWARF, DW_KIND_NONE)
193
HANDLE_DW_TAG(0x003b, unspecified_type, 3, DWARF, DW_KIND_TYPE)
194
HANDLE_DW_TAG(0x003c, partial_unit, 3, DWARF, DW_KIND_NONE)
195
HANDLE_DW_TAG(0x003d, imported_unit, 3, DWARF, DW_KIND_NONE)
196
HANDLE_DW_TAG(0x003f, condition, 3, DWARF, DW_KIND_NONE)
197
HANDLE_DW_TAG(0x0040, shared_type, 3, DWARF, DW_KIND_TYPE)
198
// New in DWARF v4:
199
HANDLE_DW_TAG(0x0041, type_unit, 4, DWARF, DW_KIND_NONE)
200
HANDLE_DW_TAG(0x0042, rvalue_reference_type, 4, DWARF, DW_KIND_TYPE)
201
HANDLE_DW_TAG(0x0043, template_alias, 4, DWARF, DW_KIND_NONE)
202
// New in DWARF v5:
203
HANDLE_DW_TAG(0x0044, coarray_type, 5, DWARF, DW_KIND_TYPE)
204
HANDLE_DW_TAG(0x0045, generic_subrange, 5, DWARF, DW_KIND_NONE)
205
HANDLE_DW_TAG(0x0046, dynamic_type, 5, DWARF, DW_KIND_TYPE)
206
HANDLE_DW_TAG(0x0047, atomic_type, 5, DWARF, DW_KIND_TYPE)
207
HANDLE_DW_TAG(0x0048, call_site, 5, DWARF, DW_KIND_NONE)
208
HANDLE_DW_TAG(0x0049, call_site_parameter, 5, DWARF, DW_KIND_NONE)
209
HANDLE_DW_TAG(0x004a, skeleton_unit, 5, DWARF, DW_KIND_NONE)
210
HANDLE_DW_TAG(0x004b, immutable_type, 5, DWARF, DW_KIND_TYPE)
211
// Vendor extensions:
212
HANDLE_DW_TAG(0x4081, MIPS_loop, 0, MIPS, DW_KIND_NONE)
213
// Conflicting:
214
// HANDLE_DW_TAG(0x4081, HP_array_descriptor, 0, HP, DW_KIND_NONE)
215
HANDLE_DW_TAG(0x4101, format_label, 0, GNU, DW_KIND_NONE)
216
HANDLE_DW_TAG(0x4102, function_template, 0, GNU, DW_KIND_NONE)
217
HANDLE_DW_TAG(0x4103, class_template, 0, GNU, DW_KIND_NONE)
218
 
219
HANDLE_DW_TAG(0x4104, GNU_BINCL, 0, GNU, DW_KIND_NONE)
220
HANDLE_DW_TAG(0x4105, GNU_EINCL, 0, GNU, DW_KIND_NONE)
221
HANDLE_DW_TAG(0x4106, GNU_template_template_param, 0, GNU, DW_KIND_NONE)
222
HANDLE_DW_TAG(0x4107, GNU_template_parameter_pack, 0, GNU, DW_KIND_NONE)
223
HANDLE_DW_TAG(0x4108, GNU_formal_parameter_pack, 0, GNU, DW_KIND_NONE)
224
HANDLE_DW_TAG(0x4109, GNU_call_site, 0, GNU, DW_KIND_NONE)
225
HANDLE_DW_TAG(0x410a, GNU_call_site_parameter, 0, GNU, DW_KIND_NONE)
226
 
227
HANDLE_DW_TAG(0x4200, APPLE_property, 0, APPLE, DW_KIND_NONE)
228
 
229
HANDLE_DW_TAG(0x4201, SUN_function_template, 0, SUN, DW_KIND_NONE)
230
HANDLE_DW_TAG(0x4202, SUN_class_template, 0, SUN, DW_KIND_NONE)
231
HANDLE_DW_TAG(0x4203, SUN_struct_template, 0, SUN, DW_KIND_NONE)
232
HANDLE_DW_TAG(0x4204, SUN_union_template, 0, SUN, DW_KIND_NONE)
233
HANDLE_DW_TAG(0x4205, SUN_indirect_inheritance, 0, SUN, DW_KIND_NONE)
234
HANDLE_DW_TAG(0x4206, SUN_codeflags, 0, SUN, DW_KIND_NONE)
235
HANDLE_DW_TAG(0x4207, SUN_memop_info, 0, SUN, DW_KIND_NONE)
236
HANDLE_DW_TAG(0x4208, SUN_omp_child_func, 0, SUN, DW_KIND_NONE)
237
HANDLE_DW_TAG(0x4209, SUN_rtti_descriptor, 0, SUN, DW_KIND_NONE)
238
HANDLE_DW_TAG(0x420a, SUN_dtor_info, 0, SUN, DW_KIND_NONE)
239
HANDLE_DW_TAG(0x420b, SUN_dtor, 0, SUN, DW_KIND_NONE)
240
HANDLE_DW_TAG(0x420c, SUN_f90_interface, 0, SUN, DW_KIND_NONE)
241
HANDLE_DW_TAG(0x420d, SUN_fortran_vax_structure, 0, SUN, DW_KIND_NONE)
242
HANDLE_DW_TAG(0x42ff, SUN_hi, 0, SUN, DW_KIND_NONE)
243
 
244
// LLVM
245
HANDLE_DW_TAG(0x4300, LLVM_ptrauth_type, 0, LLVM, DW_KIND_TYPE)
246
 
247
// DSP-C/Starcore __circ, _rev
248
HANDLE_DW_TAG(0x5101, ALTIUM_circ_type, 0, ALTIUM, DW_KIND_NONE)
249
HANDLE_DW_TAG(0x5102, ALTIUM_mwa_circ_type, 0, ALTIUM, DW_KIND_NONE)
250
HANDLE_DW_TAG(0x5103, ALTIUM_rev_carry_type, 0, ALTIUM, DW_KIND_NONE)
251
// M16 __rom qualifier
252
HANDLE_DW_TAG(0x5111, ALTIUM_rom, 0, ALTIUM, DW_KIND_NONE)
253
 
254
// LLVM
255
HANDLE_DW_TAG(0x6000, LLVM_annotation, 0, LLVM, DW_KIND_NONE)
256
 
257
// Green Hills.
258
HANDLE_DW_TAG(0x8004, GHS_namespace, 0, GHS, DW_KIND_NONE)
259
HANDLE_DW_TAG(0x8005, GHS_using_namespace, 0, GHS, DW_KIND_NONE)
260
HANDLE_DW_TAG(0x8006, GHS_using_declaration, 0, GHS, DW_KIND_NONE)
261
HANDLE_DW_TAG(0x8007, GHS_template_templ_param, 0, GHS, DW_KIND_NONE)
262
 
263
// Unified Parallel C.
264
HANDLE_DW_TAG(0x8765, UPC_shared_type, 0, UPC, DW_KIND_NONE)
265
HANDLE_DW_TAG(0x8766, UPC_strict_type, 0, UPC, DW_KIND_NONE)
266
HANDLE_DW_TAG(0x8767, UPC_relaxed, 0, UPC, DW_KIND_NONE)
267
 
268
HANDLE_DW_TAG(0xa000, PGI_kanji_type, 0, PGI, DW_KIND_NONE)
269
HANDLE_DW_TAG(0xa020, PGI_interface_block, 0, PGI, DW_KIND_NONE)
270
 
271
HANDLE_DW_TAG(0xb000, BORLAND_property, 0, BORLAND, DW_KIND_NONE)
272
HANDLE_DW_TAG(0xb001, BORLAND_Delphi_string, 0, BORLAND, DW_KIND_TYPE)
273
HANDLE_DW_TAG(0xb002, BORLAND_Delphi_dynamic_array, 0, BORLAND, DW_KIND_TYPE)
274
HANDLE_DW_TAG(0xb003, BORLAND_Delphi_set, 0, BORLAND, DW_KIND_TYPE)
275
HANDLE_DW_TAG(0xb004, BORLAND_Delphi_variant, 0, BORLAND, DW_KIND_TYPE)
276
 
277
// Attributes.
278
HANDLE_DW_AT(0x01, sibling, 2, DWARF)
279
HANDLE_DW_AT(0x02, location, 2, DWARF)
280
HANDLE_DW_AT(0x03, name, 2, DWARF)
281
HANDLE_DW_AT(0x09, ordering, 2, DWARF)
282
HANDLE_DW_AT(0x0b, byte_size, 2, DWARF)
283
HANDLE_DW_AT(0x0c, bit_offset, 2, DWARF)
284
HANDLE_DW_AT(0x0d, bit_size, 2, DWARF)
285
HANDLE_DW_AT(0x10, stmt_list, 2, DWARF)
286
HANDLE_DW_AT(0x11, low_pc, 2, DWARF)
287
HANDLE_DW_AT(0x12, high_pc, 2, DWARF)
288
HANDLE_DW_AT(0x13, language, 2, DWARF)
289
HANDLE_DW_AT(0x15, discr, 2, DWARF)
290
HANDLE_DW_AT(0x16, discr_value, 2, DWARF)
291
HANDLE_DW_AT(0x17, visibility, 2, DWARF)
292
HANDLE_DW_AT(0x18, import, 2, DWARF)
293
HANDLE_DW_AT(0x19, string_length, 2, DWARF)
294
HANDLE_DW_AT(0x1a, common_reference, 2, DWARF)
295
HANDLE_DW_AT(0x1b, comp_dir, 2, DWARF)
296
HANDLE_DW_AT(0x1c, const_value, 2, DWARF)
297
HANDLE_DW_AT(0x1d, containing_type, 2, DWARF)
298
HANDLE_DW_AT(0x1e, default_value, 2, DWARF)
299
HANDLE_DW_AT(0x20, inline, 2, DWARF)
300
HANDLE_DW_AT(0x21, is_optional, 2, DWARF)
301
HANDLE_DW_AT(0x22, lower_bound, 2, DWARF)
302
HANDLE_DW_AT(0x25, producer, 2, DWARF)
303
HANDLE_DW_AT(0x27, prototyped, 2, DWARF)
304
HANDLE_DW_AT(0x2a, return_addr, 2, DWARF)
305
HANDLE_DW_AT(0x2c, start_scope, 2, DWARF)
306
HANDLE_DW_AT(0x2e, bit_stride, 2, DWARF)
307
HANDLE_DW_AT(0x2f, upper_bound, 2, DWARF)
308
HANDLE_DW_AT(0x31, abstract_origin, 2, DWARF)
309
HANDLE_DW_AT(0x32, accessibility, 2, DWARF)
310
HANDLE_DW_AT(0x33, address_class, 2, DWARF)
311
HANDLE_DW_AT(0x34, artificial, 2, DWARF)
312
HANDLE_DW_AT(0x35, base_types, 2, DWARF)
313
HANDLE_DW_AT(0x36, calling_convention, 2, DWARF)
314
HANDLE_DW_AT(0x37, count, 2, DWARF)
315
HANDLE_DW_AT(0x38, data_member_location, 2, DWARF)
316
HANDLE_DW_AT(0x39, decl_column, 2, DWARF)
317
HANDLE_DW_AT(0x3a, decl_file, 2, DWARF)
318
HANDLE_DW_AT(0x3b, decl_line, 2, DWARF)
319
HANDLE_DW_AT(0x3c, declaration, 2, DWARF)
320
HANDLE_DW_AT(0x3d, discr_list, 2, DWARF)
321
HANDLE_DW_AT(0x3e, encoding, 2, DWARF)
322
HANDLE_DW_AT(0x3f, external, 2, DWARF)
323
HANDLE_DW_AT(0x40, frame_base, 2, DWARF)
324
HANDLE_DW_AT(0x41, friend, 2, DWARF)
325
HANDLE_DW_AT(0x42, identifier_case, 2, DWARF)
326
HANDLE_DW_AT(0x43, macro_info, 2, DWARF)
327
HANDLE_DW_AT(0x44, namelist_item, 2, DWARF)
328
HANDLE_DW_AT(0x45, priority, 2, DWARF)
329
HANDLE_DW_AT(0x46, segment, 2, DWARF)
330
HANDLE_DW_AT(0x47, specification, 2, DWARF)
331
HANDLE_DW_AT(0x48, static_link, 2, DWARF)
332
HANDLE_DW_AT(0x49, type, 2, DWARF)
333
HANDLE_DW_AT(0x4a, use_location, 2, DWARF)
334
HANDLE_DW_AT(0x4b, variable_parameter, 2, DWARF)
335
HANDLE_DW_AT(0x4c, virtuality, 2, DWARF)
336
HANDLE_DW_AT(0x4d, vtable_elem_location, 2, DWARF)
337
// New in DWARF v3:
338
HANDLE_DW_AT(0x4e, allocated, 3, DWARF)
339
HANDLE_DW_AT(0x4f, associated, 3, DWARF)
340
HANDLE_DW_AT(0x50, data_location, 3, DWARF)
341
HANDLE_DW_AT(0x51, byte_stride, 3, DWARF)
342
HANDLE_DW_AT(0x52, entry_pc, 3, DWARF)
343
HANDLE_DW_AT(0x53, use_UTF8, 3, DWARF)
344
HANDLE_DW_AT(0x54, extension, 3, DWARF)
345
HANDLE_DW_AT(0x55, ranges, 3, DWARF)
346
HANDLE_DW_AT(0x56, trampoline, 3, DWARF)
347
HANDLE_DW_AT(0x57, call_column, 3, DWARF)
348
HANDLE_DW_AT(0x58, call_file, 3, DWARF)
349
HANDLE_DW_AT(0x59, call_line, 3, DWARF)
350
HANDLE_DW_AT(0x5a, description, 3, DWARF)
351
HANDLE_DW_AT(0x5b, binary_scale, 3, DWARF)
352
HANDLE_DW_AT(0x5c, decimal_scale, 3, DWARF)
353
HANDLE_DW_AT(0x5d, small, 3, DWARF)
354
HANDLE_DW_AT(0x5e, decimal_sign, 3, DWARF)
355
HANDLE_DW_AT(0x5f, digit_count, 3, DWARF)
356
HANDLE_DW_AT(0x60, picture_string, 3, DWARF)
357
HANDLE_DW_AT(0x61, mutable, 3, DWARF)
358
HANDLE_DW_AT(0x62, threads_scaled, 3, DWARF)
359
HANDLE_DW_AT(0x63, explicit, 3, DWARF)
360
HANDLE_DW_AT(0x64, object_pointer, 3, DWARF)
361
HANDLE_DW_AT(0x65, endianity, 3, DWARF)
362
HANDLE_DW_AT(0x66, elemental, 3, DWARF)
363
HANDLE_DW_AT(0x67, pure, 3, DWARF)
364
HANDLE_DW_AT(0x68, recursive, 3, DWARF)
365
// New in DWARF v4:
366
HANDLE_DW_AT(0x69, signature, 4, DWARF)
367
HANDLE_DW_AT(0x6a, main_subprogram, 4, DWARF)
368
HANDLE_DW_AT(0x6b, data_bit_offset, 4, DWARF)
369
HANDLE_DW_AT(0x6c, const_expr, 4, DWARF)
370
HANDLE_DW_AT(0x6d, enum_class, 4, DWARF)
371
HANDLE_DW_AT(0x6e, linkage_name, 4, DWARF)
372
// New in DWARF v5:
373
HANDLE_DW_AT(0x6f, string_length_bit_size, 5, DWARF)
374
HANDLE_DW_AT(0x70, string_length_byte_size, 5, DWARF)
375
HANDLE_DW_AT(0x71, rank, 5, DWARF)
376
HANDLE_DW_AT(0x72, str_offsets_base, 5, DWARF)
377
HANDLE_DW_AT(0x73, addr_base, 5, DWARF)
378
HANDLE_DW_AT(0x74, rnglists_base, 5, DWARF)
379
HANDLE_DW_AT(0x75, dwo_id, 0, DWARF) ///< Retracted from DWARF v5.
380
HANDLE_DW_AT(0x76, dwo_name, 5, DWARF)
381
HANDLE_DW_AT(0x77, reference, 5, DWARF)
382
HANDLE_DW_AT(0x78, rvalue_reference, 5, DWARF)
383
HANDLE_DW_AT(0x79, macros, 5, DWARF)
384
HANDLE_DW_AT(0x7a, call_all_calls, 5, DWARF)
385
HANDLE_DW_AT(0x7b, call_all_source_calls, 5, DWARF)
386
HANDLE_DW_AT(0x7c, call_all_tail_calls, 5, DWARF)
387
HANDLE_DW_AT(0x7d, call_return_pc, 5, DWARF)
388
HANDLE_DW_AT(0x7e, call_value, 5, DWARF)
389
HANDLE_DW_AT(0x7f, call_origin, 5, DWARF)
390
HANDLE_DW_AT(0x80, call_parameter, 5, DWARF)
391
HANDLE_DW_AT(0x81, call_pc, 5, DWARF)
392
HANDLE_DW_AT(0x82, call_tail_call, 5, DWARF)
393
HANDLE_DW_AT(0x83, call_target, 5, DWARF)
394
HANDLE_DW_AT(0x84, call_target_clobbered, 5, DWARF)
395
HANDLE_DW_AT(0x85, call_data_location, 5, DWARF)
396
HANDLE_DW_AT(0x86, call_data_value, 5, DWARF)
397
HANDLE_DW_AT(0x87, noreturn, 5, DWARF)
398
HANDLE_DW_AT(0x88, alignment, 5, DWARF)
399
HANDLE_DW_AT(0x89, export_symbols, 5, DWARF)
400
HANDLE_DW_AT(0x8a, deleted, 5, DWARF)
401
HANDLE_DW_AT(0x8b, defaulted, 5, DWARF)
402
HANDLE_DW_AT(0x8c, loclists_base, 5, DWARF)
403
 
404
// Vendor extensions:
405
HANDLE_DW_AT(0x806, GHS_namespace_alias, 0, GHS)
406
HANDLE_DW_AT(0x807, GHS_using_namespace, 0, GHS)
407
HANDLE_DW_AT(0x808, GHS_using_declaration, 0, GHS)
408
 
409
HANDLE_DW_AT(0x2001, MIPS_fde, 0, MIPS)
410
HANDLE_DW_AT(0x2002, MIPS_loop_begin, 0, MIPS)
411
HANDLE_DW_AT(0x2003, MIPS_tail_loop_begin, 0, MIPS)
412
HANDLE_DW_AT(0x2004, MIPS_epilog_begin, 0, MIPS)
413
HANDLE_DW_AT(0x2005, MIPS_loop_unroll_factor, 0, MIPS)
414
HANDLE_DW_AT(0x2006, MIPS_software_pipeline_depth, 0, MIPS)
415
HANDLE_DW_AT(0x2007, MIPS_linkage_name, 0, MIPS)
416
// Conflicting:
417
// HANDLE_DW_AT(0x2007, GHS_mangled, 0, GHS)
418
HANDLE_DW_AT(0x2008, MIPS_stride, 0, MIPS)
419
HANDLE_DW_AT(0x2009, MIPS_abstract_name, 0, MIPS)
420
HANDLE_DW_AT(0x200a, MIPS_clone_origin, 0, MIPS)
421
HANDLE_DW_AT(0x200b, MIPS_has_inlines, 0, MIPS)
422
HANDLE_DW_AT(0x200c, MIPS_stride_byte, 0, MIPS)
423
HANDLE_DW_AT(0x200d, MIPS_stride_elem, 0, MIPS)
424
HANDLE_DW_AT(0x200e, MIPS_ptr_dopetype, 0, MIPS)
425
HANDLE_DW_AT(0x200f, MIPS_allocatable_dopetype, 0, MIPS)
426
HANDLE_DW_AT(0x2010, MIPS_assumed_shape_dopetype, 0, MIPS)
427
 
428
// This one appears to have only been implemented by Open64 for
429
// fortran and may conflict with other extensions.
430
HANDLE_DW_AT(0x2011, MIPS_assumed_size, 0, MIPS)
431
 
432
// HP  0x2001-0x2011 conflict with MIPS
433
// HANDLE_DW_AT(0x2001, HP_unmodifiable, 0, HP)
434
// HANDLE_DW_AT(0x2005, HP_prologue, 0, HP)
435
// HANDLE_DW_AT(0x2008, HP_epilogue, 0, HP)
436
// HANDLE_DW_AT(0x2010, HP_actuals_stmt_list, 0, HP)
437
// HANDLE_DW_AT(0x2011, HP_proc_per_section, 0, HP)
438
 
439
HANDLE_DW_AT(0x2012, HP_raw_data_ptr, 0, HP)
440
HANDLE_DW_AT(0x2013, HP_pass_by_reference, 0, HP)
441
HANDLE_DW_AT(0x2014, HP_opt_level, 0, HP)
442
HANDLE_DW_AT(0x2015, HP_prof_version_id, 0, HP)
443
HANDLE_DW_AT(0x2016, HP_opt_flags, 0, HP)
444
HANDLE_DW_AT(0x2017, HP_cold_region_low_pc, 0, HP)
445
HANDLE_DW_AT(0x2018, HP_cold_region_high_pc, 0, HP)
446
HANDLE_DW_AT(0x2019, HP_all_variables_modifiable, 0, HP)
447
HANDLE_DW_AT(0x201a, HP_linkage_name, 0, HP)
448
HANDLE_DW_AT(0x201b, HP_prof_flags, 0, HP)
449
HANDLE_DW_AT(0x201f, HP_unit_name, 0, HP)
450
HANDLE_DW_AT(0x2020, HP_unit_size, 0, HP)
451
HANDLE_DW_AT(0x2021, HP_widened_byte_size, 0, HP)
452
HANDLE_DW_AT(0x2022, HP_definition_points, 0, HP)
453
HANDLE_DW_AT(0x2023, HP_default_location, 0, HP)
454
HANDLE_DW_AT(0x2029, HP_is_result_param, 0, HP)
455
 
456
// COMPAQ/HP Conflicts with MIPS/HP  0x2001 - 0x2005
457
// HANDLE_DW_AT(0x2001, CPQ_discontig_ranges, 0, COMPAQ)
458
// HANDLE_DW_AT(0x2002, CPQ_semantic_events, 0, COMPAQ)
459
// HANDLE_DW_AT(0x2003, CPQ_split_lifetimes_var, 0, COMPAQ)
460
// HANDLE_DW_AT(0x2004, CPQ_split_lifetimes_rtn, 0, COMPAQ)
461
// HANDLE_DW_AT(0x2005, CPQ_prologue_length, 0, COMPAQ)
462
 
463
HANDLE_DW_AT(0x2026, DW_AT_INTEL_other_endian, 0, INTEL)
464
 
465
// Green Hills.
466
HANDLE_DW_AT(0x2083, GHS_rsm, 0, GHS)
467
HANDLE_DW_AT(0x2085, GHS_frsm, 0, GHS)
468
HANDLE_DW_AT(0x2086, GHS_frames, 0, GHS)
469
HANDLE_DW_AT(0x2087, GHS_rso, 0, GHS)
470
HANDLE_DW_AT(0x2092, GHS_subcpu, 0, GHS)
471
HANDLE_DW_AT(0x2093, GHS_lbrace_line, 0, GHS)
472
 
473
// GNU extensions
474
HANDLE_DW_AT(0x2101, sf_names, 0, GNU)
475
HANDLE_DW_AT(0x2102, src_info, 0, GNU)
476
HANDLE_DW_AT(0x2103, mac_info, 0, GNU)
477
HANDLE_DW_AT(0x2104, src_coords, 0, GNU)
478
HANDLE_DW_AT(0x2105, body_begin, 0, GNU)
479
HANDLE_DW_AT(0x2106, body_end, 0, GNU)
480
HANDLE_DW_AT(0x2107, GNU_vector, 0, GNU)
481
HANDLE_DW_AT(0x210f, GNU_odr_signature, 0, GNU)
482
HANDLE_DW_AT(0x2110, GNU_template_name, 0, GNU)
483
HANDLE_DW_AT(0x2111, GNU_call_site_value, 0, GNU)
484
HANDLE_DW_AT(0x2112, GNU_call_site_data_value, 0, GNU)
485
HANDLE_DW_AT(0x2113, GNU_call_site_target, 0, GNU)
486
HANDLE_DW_AT(0x2114, GNU_call_site_target_clobbered, 0, GNU)
487
HANDLE_DW_AT(0x2115, GNU_tail_call, 0, GNU)
488
HANDLE_DW_AT(0x2116, GNU_all_tail_call_sites, 0, GNU)
489
HANDLE_DW_AT(0x2117, GNU_all_call_sites, 0, GNU)
490
HANDLE_DW_AT(0x2118, GNU_all_source_call_sites, 0, GNU)
491
HANDLE_DW_AT(0x2119, GNU_macros, 0, GNU)
492
HANDLE_DW_AT(0x211a, GNU_deleted, 0, GNU)
493
// Extensions for Fission proposal.
494
HANDLE_DW_AT(0x2130, GNU_dwo_name, 0, GNU)
495
HANDLE_DW_AT(0x2131, GNU_dwo_id, 0, GNU)
496
HANDLE_DW_AT(0x2132, GNU_ranges_base, 0, GNU)
497
HANDLE_DW_AT(0x2133, GNU_addr_base, 0, GNU)
498
HANDLE_DW_AT(0x2134, GNU_pubnames, 0, GNU)
499
HANDLE_DW_AT(0x2135, GNU_pubtypes, 0, GNU)
500
HANDLE_DW_AT(0x2136, GNU_discriminator, 0, GNU)
501
HANDLE_DW_AT(0x2137, GNU_locviews, 0, GNU)
502
HANDLE_DW_AT(0x2138, GNU_entry_view, 0, GNU)
503
 
504
HANDLE_DW_AT(0x2201, SUN_template, 0, SUN)
505
// Conflicting:
506
// HANDLE_DW_AT(0x2201, VMS_rtnbeg_pd_address);
507
 
508
HANDLE_DW_AT(0x2202, SUN_alignment, 0, SUN)
509
HANDLE_DW_AT(0x2203, SUN_vtable, 0, SUN)
510
HANDLE_DW_AT(0x2204, SUN_count_guarantee, 0, SUN)
511
HANDLE_DW_AT(0x2205, SUN_command_line, 0, SUN)
512
HANDLE_DW_AT(0x2206, SUN_vbase, 0, SUN)
513
HANDLE_DW_AT(0x2207, SUN_compile_options, 0, SUN)
514
HANDLE_DW_AT(0x2208, SUN_language, 0, SUN)
515
HANDLE_DW_AT(0x2209, SUN_browser_file, 0, SUN)
516
HANDLE_DW_AT(0x2210, SUN_vtable_abi, 0, SUN)
517
HANDLE_DW_AT(0x2211, SUN_func_offsets, 0, SUN)
518
HANDLE_DW_AT(0x2212, SUN_cf_kind, 0, SUN)
519
HANDLE_DW_AT(0x2213, SUN_vtable_index, 0, SUN)
520
HANDLE_DW_AT(0x2214, SUN_omp_tpriv_addr, 0, SUN)
521
HANDLE_DW_AT(0x2215, SUN_omp_child_func, 0, SUN)
522
HANDLE_DW_AT(0x2216, SUN_func_offset, 0, SUN)
523
HANDLE_DW_AT(0x2217, SUN_memop_type_ref, 0, SUN)
524
HANDLE_DW_AT(0x2218, SUN_profile_id, 0, SUN)
525
HANDLE_DW_AT(0x2219, SUN_memop_signature, 0, SUN)
526
 
527
HANDLE_DW_AT(0x2220, SUN_obj_dir, 0, SUN)
528
HANDLE_DW_AT(0x2221, SUN_obj_file, 0, SUN)
529
HANDLE_DW_AT(0x2222, SUN_original_name, 0, SUN)
530
HANDLE_DW_AT(0x2223, SUN_hwcprof_signature, 0, SUN)
531
HANDLE_DW_AT(0x2224, SUN_amd64_parmdump, 0, SUN)
532
HANDLE_DW_AT(0x2225, SUN_part_link_name, 0, SUN)
533
HANDLE_DW_AT(0x2226, SUN_link_name, 0, SUN)
534
HANDLE_DW_AT(0x2227, SUN_pass_with_const, 0, SUN)
535
HANDLE_DW_AT(0x2228, SUN_return_with_const, 0, SUN)
536
HANDLE_DW_AT(0x2229, SUN_import_by_name, 0, SUN)
537
HANDLE_DW_AT(0x222a, SUN_90_pointer, 0, SUN)
538
HANDLE_DW_AT(0x222b, SUN_pass_by_ref, 0, SUN)
539
HANDLE_DW_AT(0x222c, SUN_f90_allocatable, 0, SUN)
540
HANDLE_DW_AT(0x222d, SUN_f90_assumed_shape_array, 0, SUN)
541
HANDLE_DW_AT(0x222e, SUN_c_vla, 0, SUN)
542
HANDLE_DW_AT(0x2230, SUN_return_value_ptr, 0, SUN)
543
HANDLE_DW_AT(0x2231, SUN_dtor_start, 0, SUN)
544
HANDLE_DW_AT(0x2232, SUN_dtor_length, 0, SUN)
545
HANDLE_DW_AT(0x2233, SUN_dtor_state_initial, 0, SUN)
546
HANDLE_DW_AT(0x2234, SUN_dtor_state_final, 0, SUN)
547
HANDLE_DW_AT(0x2235, SUN_dtor_state_deltas, 0, SUN)
548
HANDLE_DW_AT(0x2236, SUN_import_by_lname, 0, SUN)
549
HANDLE_DW_AT(0x2237, SUN_f90_use_only, 0, SUN)
550
HANDLE_DW_AT(0x2238, SUN_namelist_spec, 0, SUN)
551
HANDLE_DW_AT(0x2239, SUN_is_omp_child_func, 0, SUN)
552
HANDLE_DW_AT(0x223a, SUN_fortran_main_alias, 0, SUN)
553
HANDLE_DW_AT(0x223b, SUN_fortran_based, 0, SUN)
554
 
555
HANDLE_DW_AT(0x2300, ALTIUM_loclist, 0, ALTIUM)
556
 
557
HANDLE_DW_AT(0x2301, use_GNAT_descriptive_type, 0, GNU)
558
HANDLE_DW_AT(0x2302, GNAT_descriptive_type, 0, GNU)
559
HANDLE_DW_AT(0x2303, GNU_numerator, 0, GNU)
560
HANDLE_DW_AT(0x2304, GNU_denominator, 0, GNU)
561
HANDLE_DW_AT(0x2305, GNU_bias, 0, GNU)
562
 
563
HANDLE_DW_AT(0x2900, GO_kind, 0, GO)
564
HANDLE_DW_AT(0x2901, GO_key, 0, GO)
565
HANDLE_DW_AT(0x2902, GO_elem, 0, GO)
566
HANDLE_DW_AT(0x2903, GO_embedded_field, 0, GO)
567
HANDLE_DW_AT(0x2904, GO_runtime_type, 0, GO)
568
 
569
HANDLE_DW_AT(0x3210, UPC_threads_scaled, 0, UPC)
570
 
571
HANDLE_DW_AT(0x393e, IBM_wsa_addr, 0, IBM)
572
HANDLE_DW_AT(0x393f, IBM_home_location, 0, IBM)
573
HANDLE_DW_AT(0x3940, IBM_alt_srcview, 0, IBM)
574
 
575
// PGI extensions (STMicroelectronics)
576
HANDLE_DW_AT(0x3a00, PGI_lbase, 0, PGI)
577
HANDLE_DW_AT(0x3a01, PGI_soffset, 0, PGI)
578
HANDLE_DW_AT(0x3a02, PGI_lstride, 0, PGI)
579
 
580
// Borland extensions.
581
HANDLE_DW_AT(0x3b11, BORLAND_property_read, 0, BORLAND)
582
HANDLE_DW_AT(0x3b12, BORLAND_property_write, 0, BORLAND)
583
HANDLE_DW_AT(0x3b13, BORLAND_property_implements, 0, BORLAND)
584
HANDLE_DW_AT(0x3b14, BORLAND_property_index, 0, BORLAND)
585
HANDLE_DW_AT(0x3b15, BORLAND_property_default, 0, BORLAND)
586
HANDLE_DW_AT(0x3b20, BORLAND_Delphi_unit, 0, BORLAND)
587
HANDLE_DW_AT(0x3b21, BORLAND_Delphi_class, 0, BORLAND)
588
HANDLE_DW_AT(0x3b22, BORLAND_Delphi_record, 0, BORLAND)
589
HANDLE_DW_AT(0x3b23, BORLAND_Delphi_metaclass, 0, BORLAND)
590
HANDLE_DW_AT(0x3b24, BORLAND_Delphi_constructor, 0, BORLAND)
591
HANDLE_DW_AT(0x3b25, BORLAND_Delphi_destructor, 0, BORLAND)
592
HANDLE_DW_AT(0x3b26, BORLAND_Delphi_anonymous_method, 0, BORLAND)
593
HANDLE_DW_AT(0x3b27, BORLAND_Delphi_interface, 0, BORLAND)
594
HANDLE_DW_AT(0x3b28, BORLAND_Delphi_ABI, 0, BORLAND)
595
HANDLE_DW_AT(0x3b29, BORLAND_Delphi_return, 0, BORLAND)
596
HANDLE_DW_AT(0x3b30, BORLAND_Delphi_frameptr, 0, BORLAND)
597
HANDLE_DW_AT(0x3b31, BORLAND_closure, 0, BORLAND)
598
// LLVM project extensions.
599
HANDLE_DW_AT(0x3e00, LLVM_include_path, 0, LLVM)
600
HANDLE_DW_AT(0x3e01, LLVM_config_macros, 0, LLVM)
601
HANDLE_DW_AT(0x3e02, LLVM_sysroot, 0, LLVM)
602
HANDLE_DW_AT(0x3e03, LLVM_tag_offset, 0, LLVM)
603
HANDLE_DW_AT(0x3e04, LLVM_ptrauth_key, 0, LLVM)
604
HANDLE_DW_AT(0x3e05, LLVM_ptrauth_address_discriminated, 0, LLVM)
605
HANDLE_DW_AT(0x3e06, LLVM_ptrauth_extra_discriminator, 0, LLVM)
606
HANDLE_DW_AT(0x3e07, LLVM_apinotes, 0, APPLE)
607
HANDLE_DW_AT(0x3e08, LLVM_ptrauth_isa_pointer, 0, LLVM)
608
HANDLE_DW_AT(0x3e09, LLVM_ptrauth_authenticates_null_values, 0, LLVM)
609
 
610
// Apple extensions.
611
 
612
HANDLE_DW_AT(0x3fe1, APPLE_optimized, 0, APPLE)
613
HANDLE_DW_AT(0x3fe2, APPLE_flags, 0, APPLE)
614
HANDLE_DW_AT(0x3fe3, APPLE_isa, 0, APPLE)
615
HANDLE_DW_AT(0x3fe4, APPLE_block, 0, APPLE)
616
HANDLE_DW_AT(0x3fe5, APPLE_major_runtime_vers, 0, APPLE)
617
HANDLE_DW_AT(0x3fe6, APPLE_runtime_class, 0, APPLE)
618
HANDLE_DW_AT(0x3fe7, APPLE_omit_frame_ptr, 0, APPLE)
619
HANDLE_DW_AT(0x3fe8, APPLE_property_name, 0, APPLE)
620
HANDLE_DW_AT(0x3fe9, APPLE_property_getter, 0, APPLE)
621
HANDLE_DW_AT(0x3fea, APPLE_property_setter, 0, APPLE)
622
HANDLE_DW_AT(0x3feb, APPLE_property_attribute, 0, APPLE)
623
HANDLE_DW_AT(0x3fec, APPLE_objc_complete_type, 0, APPLE)
624
HANDLE_DW_AT(0x3fed, APPLE_property, 0, APPLE)
625
HANDLE_DW_AT(0x3fee, APPLE_objc_direct, 0, APPLE)
626
HANDLE_DW_AT(0x3fef, APPLE_sdk, 0, APPLE)
627
 
628
// Attribute form encodings.
629
HANDLE_DW_FORM(0x01, addr, 2, DWARF)
630
HANDLE_DW_FORM(0x03, block2, 2, DWARF)
631
HANDLE_DW_FORM(0x04, block4, 2, DWARF)
632
HANDLE_DW_FORM(0x05, data2, 2, DWARF)
633
HANDLE_DW_FORM(0x06, data4, 2, DWARF)
634
HANDLE_DW_FORM(0x07, data8, 2, DWARF)
635
HANDLE_DW_FORM(0x08, string, 2, DWARF)
636
HANDLE_DW_FORM(0x09, block, 2, DWARF)
637
HANDLE_DW_FORM(0x0a, block1, 2, DWARF)
638
HANDLE_DW_FORM(0x0b, data1, 2, DWARF)
639
HANDLE_DW_FORM(0x0c, flag, 2, DWARF)
640
HANDLE_DW_FORM(0x0d, sdata, 2, DWARF)
641
HANDLE_DW_FORM(0x0e, strp, 2, DWARF)
642
HANDLE_DW_FORM(0x0f, udata, 2, DWARF)
643
HANDLE_DW_FORM(0x10, ref_addr, 2, DWARF)
644
HANDLE_DW_FORM(0x11, ref1, 2, DWARF)
645
HANDLE_DW_FORM(0x12, ref2, 2, DWARF)
646
HANDLE_DW_FORM(0x13, ref4, 2, DWARF)
647
HANDLE_DW_FORM(0x14, ref8, 2, DWARF)
648
HANDLE_DW_FORM(0x15, ref_udata, 2, DWARF)
649
HANDLE_DW_FORM(0x16, indirect, 2, DWARF)
650
// New in DWARF v4:
651
HANDLE_DW_FORM(0x17, sec_offset, 4, DWARF)
652
HANDLE_DW_FORM(0x18, exprloc, 4, DWARF)
653
HANDLE_DW_FORM(0x19, flag_present, 4, DWARF)
654
// This was defined out of sequence.
655
HANDLE_DW_FORM(0x20, ref_sig8, 4, DWARF)
656
// New in DWARF v5:
657
HANDLE_DW_FORM(0x1a, strx, 5, DWARF)
658
HANDLE_DW_FORM(0x1b, addrx, 5, DWARF)
659
HANDLE_DW_FORM(0x1c, ref_sup4, 5, DWARF)
660
HANDLE_DW_FORM(0x1d, strp_sup, 5, DWARF)
661
HANDLE_DW_FORM(0x1e, data16, 5, DWARF)
662
HANDLE_DW_FORM(0x1f, line_strp, 5, DWARF)
663
HANDLE_DW_FORM(0x21, implicit_const, 5, DWARF)
664
HANDLE_DW_FORM(0x22, loclistx, 5, DWARF)
665
HANDLE_DW_FORM(0x23, rnglistx, 5, DWARF)
666
HANDLE_DW_FORM(0x24, ref_sup8, 5, DWARF)
667
HANDLE_DW_FORM(0x25, strx1, 5, DWARF)
668
HANDLE_DW_FORM(0x26, strx2, 5, DWARF)
669
HANDLE_DW_FORM(0x27, strx3, 5, DWARF)
670
HANDLE_DW_FORM(0x28, strx4, 5, DWARF)
671
HANDLE_DW_FORM(0x29, addrx1, 5, DWARF)
672
HANDLE_DW_FORM(0x2a, addrx2, 5, DWARF)
673
HANDLE_DW_FORM(0x2b, addrx3, 5, DWARF)
674
HANDLE_DW_FORM(0x2c, addrx4, 5, DWARF)
675
// Extensions for Fission proposal
676
HANDLE_DW_FORM(0x1f01, GNU_addr_index, 0, GNU)
677
HANDLE_DW_FORM(0x1f02, GNU_str_index, 0, GNU)
678
// Alternate debug sections proposal (output of "dwz" tool).
679
HANDLE_DW_FORM(0x1f20, GNU_ref_alt, 0, GNU)
680
HANDLE_DW_FORM(0x1f21, GNU_strp_alt, 0, GNU)
681
// LLVM addr+offset extension
682
HANDLE_DW_FORM(0x2001, LLVM_addrx_offset, 0, LLVM)
683
 
684
// DWARF Expression operators.
685
HANDLE_DW_OP(0x03, addr, 2, DWARF)
686
HANDLE_DW_OP(0x06, deref, 2, DWARF)
687
HANDLE_DW_OP(0x08, const1u, 2, DWARF)
688
HANDLE_DW_OP(0x09, const1s, 2, DWARF)
689
HANDLE_DW_OP(0x0a, const2u, 2, DWARF)
690
HANDLE_DW_OP(0x0b, const2s, 2, DWARF)
691
HANDLE_DW_OP(0x0c, const4u, 2, DWARF)
692
HANDLE_DW_OP(0x0d, const4s, 2, DWARF)
693
HANDLE_DW_OP(0x0e, const8u, 2, DWARF)
694
HANDLE_DW_OP(0x0f, const8s, 2, DWARF)
695
HANDLE_DW_OP(0x10, constu, 2, DWARF)
696
HANDLE_DW_OP(0x11, consts, 2, DWARF)
697
HANDLE_DW_OP(0x12, dup, 2, DWARF)
698
HANDLE_DW_OP(0x13, drop, 2, DWARF)
699
HANDLE_DW_OP(0x14, over, 2, DWARF)
700
HANDLE_DW_OP(0x15, pick, 2, DWARF)
701
HANDLE_DW_OP(0x16, swap, 2, DWARF)
702
HANDLE_DW_OP(0x17, rot, 2, DWARF)
703
HANDLE_DW_OP(0x18, xderef, 2, DWARF)
704
HANDLE_DW_OP(0x19, abs, 2, DWARF)
705
HANDLE_DW_OP(0x1a, and, 2, DWARF)
706
HANDLE_DW_OP(0x1b, div, 2, DWARF)
707
HANDLE_DW_OP(0x1c, minus, 2, DWARF)
708
HANDLE_DW_OP(0x1d, mod, 2, DWARF)
709
HANDLE_DW_OP(0x1e, mul, 2, DWARF)
710
HANDLE_DW_OP(0x1f, neg, 2, DWARF)
711
HANDLE_DW_OP(0x20, not, 2, DWARF)
712
HANDLE_DW_OP(0x21, or, 2, DWARF)
713
HANDLE_DW_OP(0x22, plus, 2, DWARF)
714
HANDLE_DW_OP(0x23, plus_uconst, 2, DWARF)
715
HANDLE_DW_OP(0x24, shl, 2, DWARF)
716
HANDLE_DW_OP(0x25, shr, 2, DWARF)
717
HANDLE_DW_OP(0x26, shra, 2, DWARF)
718
HANDLE_DW_OP(0x27, xor, 2, DWARF)
719
HANDLE_DW_OP(0x28, bra, 2, DWARF)
720
HANDLE_DW_OP(0x29, eq, 2, DWARF)
721
HANDLE_DW_OP(0x2a, ge, 2, DWARF)
722
HANDLE_DW_OP(0x2b, gt, 2, DWARF)
723
HANDLE_DW_OP(0x2c, le, 2, DWARF)
724
HANDLE_DW_OP(0x2d, lt, 2, DWARF)
725
HANDLE_DW_OP(0x2e, ne, 2, DWARF)
726
HANDLE_DW_OP(0x2f, skip, 2, DWARF)
727
HANDLE_DW_OP(0x30, lit0, 2, DWARF)
728
HANDLE_DW_OP(0x31, lit1, 2, DWARF)
729
HANDLE_DW_OP(0x32, lit2, 2, DWARF)
730
HANDLE_DW_OP(0x33, lit3, 2, DWARF)
731
HANDLE_DW_OP(0x34, lit4, 2, DWARF)
732
HANDLE_DW_OP(0x35, lit5, 2, DWARF)
733
HANDLE_DW_OP(0x36, lit6, 2, DWARF)
734
HANDLE_DW_OP(0x37, lit7, 2, DWARF)
735
HANDLE_DW_OP(0x38, lit8, 2, DWARF)
736
HANDLE_DW_OP(0x39, lit9, 2, DWARF)
737
HANDLE_DW_OP(0x3a, lit10, 2, DWARF)
738
HANDLE_DW_OP(0x3b, lit11, 2, DWARF)
739
HANDLE_DW_OP(0x3c, lit12, 2, DWARF)
740
HANDLE_DW_OP(0x3d, lit13, 2, DWARF)
741
HANDLE_DW_OP(0x3e, lit14, 2, DWARF)
742
HANDLE_DW_OP(0x3f, lit15, 2, DWARF)
743
HANDLE_DW_OP(0x40, lit16, 2, DWARF)
744
HANDLE_DW_OP(0x41, lit17, 2, DWARF)
745
HANDLE_DW_OP(0x42, lit18, 2, DWARF)
746
HANDLE_DW_OP(0x43, lit19, 2, DWARF)
747
HANDLE_DW_OP(0x44, lit20, 2, DWARF)
748
HANDLE_DW_OP(0x45, lit21, 2, DWARF)
749
HANDLE_DW_OP(0x46, lit22, 2, DWARF)
750
HANDLE_DW_OP(0x47, lit23, 2, DWARF)
751
HANDLE_DW_OP(0x48, lit24, 2, DWARF)
752
HANDLE_DW_OP(0x49, lit25, 2, DWARF)
753
HANDLE_DW_OP(0x4a, lit26, 2, DWARF)
754
HANDLE_DW_OP(0x4b, lit27, 2, DWARF)
755
HANDLE_DW_OP(0x4c, lit28, 2, DWARF)
756
HANDLE_DW_OP(0x4d, lit29, 2, DWARF)
757
HANDLE_DW_OP(0x4e, lit30, 2, DWARF)
758
HANDLE_DW_OP(0x4f, lit31, 2, DWARF)
759
HANDLE_DW_OP(0x50, reg0, 2, DWARF)
760
HANDLE_DW_OP(0x51, reg1, 2, DWARF)
761
HANDLE_DW_OP(0x52, reg2, 2, DWARF)
762
HANDLE_DW_OP(0x53, reg3, 2, DWARF)
763
HANDLE_DW_OP(0x54, reg4, 2, DWARF)
764
HANDLE_DW_OP(0x55, reg5, 2, DWARF)
765
HANDLE_DW_OP(0x56, reg6, 2, DWARF)
766
HANDLE_DW_OP(0x57, reg7, 2, DWARF)
767
HANDLE_DW_OP(0x58, reg8, 2, DWARF)
768
HANDLE_DW_OP(0x59, reg9, 2, DWARF)
769
HANDLE_DW_OP(0x5a, reg10, 2, DWARF)
770
HANDLE_DW_OP(0x5b, reg11, 2, DWARF)
771
HANDLE_DW_OP(0x5c, reg12, 2, DWARF)
772
HANDLE_DW_OP(0x5d, reg13, 2, DWARF)
773
HANDLE_DW_OP(0x5e, reg14, 2, DWARF)
774
HANDLE_DW_OP(0x5f, reg15, 2, DWARF)
775
HANDLE_DW_OP(0x60, reg16, 2, DWARF)
776
HANDLE_DW_OP(0x61, reg17, 2, DWARF)
777
HANDLE_DW_OP(0x62, reg18, 2, DWARF)
778
HANDLE_DW_OP(0x63, reg19, 2, DWARF)
779
HANDLE_DW_OP(0x64, reg20, 2, DWARF)
780
HANDLE_DW_OP(0x65, reg21, 2, DWARF)
781
HANDLE_DW_OP(0x66, reg22, 2, DWARF)
782
HANDLE_DW_OP(0x67, reg23, 2, DWARF)
783
HANDLE_DW_OP(0x68, reg24, 2, DWARF)
784
HANDLE_DW_OP(0x69, reg25, 2, DWARF)
785
HANDLE_DW_OP(0x6a, reg26, 2, DWARF)
786
HANDLE_DW_OP(0x6b, reg27, 2, DWARF)
787
HANDLE_DW_OP(0x6c, reg28, 2, DWARF)
788
HANDLE_DW_OP(0x6d, reg29, 2, DWARF)
789
HANDLE_DW_OP(0x6e, reg30, 2, DWARF)
790
HANDLE_DW_OP(0x6f, reg31, 2, DWARF)
791
HANDLE_DW_OP(0x70, breg0, 2, DWARF)
792
HANDLE_DW_OP(0x71, breg1, 2, DWARF)
793
HANDLE_DW_OP(0x72, breg2, 2, DWARF)
794
HANDLE_DW_OP(0x73, breg3, 2, DWARF)
795
HANDLE_DW_OP(0x74, breg4, 2, DWARF)
796
HANDLE_DW_OP(0x75, breg5, 2, DWARF)
797
HANDLE_DW_OP(0x76, breg6, 2, DWARF)
798
HANDLE_DW_OP(0x77, breg7, 2, DWARF)
799
HANDLE_DW_OP(0x78, breg8, 2, DWARF)
800
HANDLE_DW_OP(0x79, breg9, 2, DWARF)
801
HANDLE_DW_OP(0x7a, breg10, 2, DWARF)
802
HANDLE_DW_OP(0x7b, breg11, 2, DWARF)
803
HANDLE_DW_OP(0x7c, breg12, 2, DWARF)
804
HANDLE_DW_OP(0x7d, breg13, 2, DWARF)
805
HANDLE_DW_OP(0x7e, breg14, 2, DWARF)
806
HANDLE_DW_OP(0x7f, breg15, 2, DWARF)
807
HANDLE_DW_OP(0x80, breg16, 2, DWARF)
808
HANDLE_DW_OP(0x81, breg17, 2, DWARF)
809
HANDLE_DW_OP(0x82, breg18, 2, DWARF)
810
HANDLE_DW_OP(0x83, breg19, 2, DWARF)
811
HANDLE_DW_OP(0x84, breg20, 2, DWARF)
812
HANDLE_DW_OP(0x85, breg21, 2, DWARF)
813
HANDLE_DW_OP(0x86, breg22, 2, DWARF)
814
HANDLE_DW_OP(0x87, breg23, 2, DWARF)
815
HANDLE_DW_OP(0x88, breg24, 2, DWARF)
816
HANDLE_DW_OP(0x89, breg25, 2, DWARF)
817
HANDLE_DW_OP(0x8a, breg26, 2, DWARF)
818
HANDLE_DW_OP(0x8b, breg27, 2, DWARF)
819
HANDLE_DW_OP(0x8c, breg28, 2, DWARF)
820
HANDLE_DW_OP(0x8d, breg29, 2, DWARF)
821
HANDLE_DW_OP(0x8e, breg30, 2, DWARF)
822
HANDLE_DW_OP(0x8f, breg31, 2, DWARF)
823
HANDLE_DW_OP(0x90, regx, 2, DWARF)
824
HANDLE_DW_OP(0x91, fbreg, 2, DWARF)
825
HANDLE_DW_OP(0x92, bregx, 2, DWARF)
826
HANDLE_DW_OP(0x93, piece, 2, DWARF)
827
HANDLE_DW_OP(0x94, deref_size, 2, DWARF)
828
HANDLE_DW_OP(0x95, xderef_size, 2, DWARF)
829
HANDLE_DW_OP(0x96, nop, 2, DWARF)
830
// New in DWARF v3:
831
HANDLE_DW_OP(0x97, push_object_address, 3, DWARF)
832
HANDLE_DW_OP(0x98, call2, 3, DWARF)
833
HANDLE_DW_OP(0x99, call4, 3, DWARF)
834
HANDLE_DW_OP(0x9a, call_ref, 3, DWARF)
835
HANDLE_DW_OP(0x9b, form_tls_address, 3, DWARF)
836
HANDLE_DW_OP(0x9c, call_frame_cfa, 3, DWARF)
837
HANDLE_DW_OP(0x9d, bit_piece, 3, DWARF)
838
// New in DWARF v4:
839
HANDLE_DW_OP(0x9e, implicit_value, 4, DWARF)
840
HANDLE_DW_OP(0x9f, stack_value, 4, DWARF)
841
// New in DWARF v5:
842
HANDLE_DW_OP(0xa0, implicit_pointer, 5, DWARF)
843
HANDLE_DW_OP(0xa1, addrx, 5, DWARF)
844
HANDLE_DW_OP(0xa2, constx, 5, DWARF)
845
HANDLE_DW_OP(0xa3, entry_value, 5, DWARF)
846
HANDLE_DW_OP(0xa4, const_type, 5, DWARF)
847
HANDLE_DW_OP(0xa5, regval_type, 5, DWARF)
848
HANDLE_DW_OP(0xa6, deref_type, 5, DWARF)
849
HANDLE_DW_OP(0xa7, xderef_type, 5, DWARF)
850
HANDLE_DW_OP(0xa8, convert, 5, DWARF)
851
HANDLE_DW_OP(0xa9, reinterpret, 5, DWARF)
852
// Vendor extensions:
853
// Extensions for GNU-style thread-local storage.
854
HANDLE_DW_OP(0xe0, GNU_push_tls_address, 0, GNU)
855
// Conflicting:
856
// HANDLE_DW_OP(0xe0, HP_unknown, 0, HP)
857
HANDLE_DW_OP(0xe1, HP_is_value, 0, HP)
858
HANDLE_DW_OP(0xe2, HP_fltconst4, 0, HP)
859
HANDLE_DW_OP(0xe3, HP_fltconst8, 0, HP)
860
HANDLE_DW_OP(0xe4, HP_mod_range, 0, HP)
861
HANDLE_DW_OP(0xe5, HP_unmod_range, 0, HP)
862
HANDLE_DW_OP(0xe6, HP_tls, 0, HP)
863
HANDLE_DW_OP(0xe8, INTEL_bit_piece, 0, INTEL)
864
 
865
// Extensions for WebAssembly.
866
HANDLE_DW_OP(0xed, WASM_location, 0, WASM)
867
HANDLE_DW_OP(0xee, WASM_location_int, 0, WASM)
868
// Historic and not implemented in LLVM.
869
HANDLE_DW_OP(0xf0, APPLE_uninit, 0, APPLE)
870
// The GNU entry value extension.
871
HANDLE_DW_OP(0xf3, GNU_entry_value, 0, GNU)
872
HANDLE_DW_OP(0xf8, PGI_omp_thread_num, 0, PGI)
873
// Extensions for Fission proposal.
874
HANDLE_DW_OP(0xfb, GNU_addr_index, 0, GNU)
875
HANDLE_DW_OP(0xfc, GNU_const_index, 0, GNU)
876
 
877
// DWARF languages.
878
HANDLE_DW_LANG(0x0001, C89, 0, 2, DWARF)
879
HANDLE_DW_LANG(0x0002, C, 0, 2, DWARF)
880
HANDLE_DW_LANG(0x0003, Ada83, 1, 2, DWARF)
881
HANDLE_DW_LANG(0x0004, C_plus_plus, 0, 2, DWARF)
882
HANDLE_DW_LANG(0x0005, Cobol74, 1, 2, DWARF)
883
HANDLE_DW_LANG(0x0006, Cobol85, 1, 2, DWARF)
884
HANDLE_DW_LANG(0x0007, Fortran77, 1, 2, DWARF)
885
HANDLE_DW_LANG(0x0008, Fortran90, 1, 2, DWARF)
886
HANDLE_DW_LANG(0x0009, Pascal83, 1, 2, DWARF)
887
HANDLE_DW_LANG(0x000a, Modula2, 1, 2, DWARF)
888
// New in DWARF v3:
889
HANDLE_DW_LANG(0x000b, Java, 0, 3, DWARF)
890
HANDLE_DW_LANG(0x000c, C99, 0, 3, DWARF)
891
HANDLE_DW_LANG(0x000d, Ada95, 1, 3, DWARF)
892
HANDLE_DW_LANG(0x000e, Fortran95, 1, 3, DWARF)
893
HANDLE_DW_LANG(0x000f, PLI, 1, 3, DWARF)
894
HANDLE_DW_LANG(0x0010, ObjC, 0, 3, DWARF)
895
HANDLE_DW_LANG(0x0011, ObjC_plus_plus, 0, 3, DWARF)
896
HANDLE_DW_LANG(0x0012, UPC, 0, 3, DWARF)
897
HANDLE_DW_LANG(0x0013, D, 0, 3, DWARF)
898
// New in DWARF v4:
899
HANDLE_DW_LANG(0x0014, Python, 0, 4, DWARF)
900
// New in DWARF v5:
901
HANDLE_DW_LANG(0x0015, OpenCL, 0, 5, DWARF)
902
HANDLE_DW_LANG(0x0016, Go, 0, 5, DWARF)
903
HANDLE_DW_LANG(0x0017, Modula3, 1, 5, DWARF)
904
HANDLE_DW_LANG(0x0018, Haskell, 0, 5, DWARF)
905
HANDLE_DW_LANG(0x0019, C_plus_plus_03, 0, 5, DWARF)
906
HANDLE_DW_LANG(0x001a, C_plus_plus_11, 0, 5, DWARF)
907
HANDLE_DW_LANG(0x001b, OCaml, 0, 5, DWARF)
908
HANDLE_DW_LANG(0x001c, Rust, 0, 5, DWARF)
909
HANDLE_DW_LANG(0x001d, C11, 0, 5, DWARF)
910
HANDLE_DW_LANG(0x001e, Swift, 0, 5, DWARF)
911
HANDLE_DW_LANG(0x001f, Julia, 1, 5, DWARF)
912
HANDLE_DW_LANG(0x0020, Dylan, 0, 5, DWARF)
913
HANDLE_DW_LANG(0x0021, C_plus_plus_14, 0, 5, DWARF)
914
HANDLE_DW_LANG(0x0022, Fortran03, 1, 5, DWARF)
915
HANDLE_DW_LANG(0x0023, Fortran08, 1, 5, DWARF)
916
HANDLE_DW_LANG(0x0024, RenderScript, 0, 5, DWARF)
917
HANDLE_DW_LANG(0x0025, BLISS, 0, 5, DWARF)
918
// New since DWARF v5:
919
HANDLE_DW_LANG(0x0026, Kotlin, 0, 0, DWARF)
920
HANDLE_DW_LANG(0x0027, Zig, 0, 0, DWARF)
921
HANDLE_DW_LANG(0x0028, Crystal, 0, 0, DWARF)
922
HANDLE_DW_LANG(0x002a, C_plus_plus_17, 0, 0, DWARF)
923
HANDLE_DW_LANG(0x002b, C_plus_plus_20, 0, 0, DWARF)
924
HANDLE_DW_LANG(0x002c, C17, 0, 0, DWARF)
925
HANDLE_DW_LANG(0x002d, Fortran18, 0, 0, DWARF)
926
HANDLE_DW_LANG(0x002e, Ada2005, 0, 0, DWARF)
927
HANDLE_DW_LANG(0x002f, Ada2012, 0, 0, DWARF)
928
// Vendor extensions:
929
HANDLE_DW_LANG(0x8001, Mips_Assembler, std::nullopt, 0, MIPS)
930
HANDLE_DW_LANG(0x8e57, GOOGLE_RenderScript, 0, 0, GOOGLE)
931
HANDLE_DW_LANG(0xb000, BORLAND_Delphi, 0, 0, BORLAND)
932
 
933
 
934
// DWARF attribute type encodings.
935
HANDLE_DW_ATE(0x01, address, 2, DWARF)
936
HANDLE_DW_ATE(0x02, boolean, 2, DWARF)
937
HANDLE_DW_ATE(0x03, complex_float, 2, DWARF)
938
HANDLE_DW_ATE(0x04, float, 2, DWARF)
939
HANDLE_DW_ATE(0x05, signed, 2, DWARF)
940
HANDLE_DW_ATE(0x06, signed_char, 2, DWARF)
941
HANDLE_DW_ATE(0x07, unsigned, 2, DWARF)
942
HANDLE_DW_ATE(0x08, unsigned_char, 2, DWARF)
943
// New in DWARF v3:
944
HANDLE_DW_ATE(0x09, imaginary_float, 3, DWARF)
945
HANDLE_DW_ATE(0x0a, packed_decimal, 3, DWARF)
946
HANDLE_DW_ATE(0x0b, numeric_string, 3, DWARF)
947
HANDLE_DW_ATE(0x0c, edited, 3, DWARF)
948
HANDLE_DW_ATE(0x0d, signed_fixed, 3, DWARF)
949
HANDLE_DW_ATE(0x0e, unsigned_fixed, 3, DWARF)
950
HANDLE_DW_ATE(0x0f, decimal_float, 3, DWARF)
951
// New in DWARF v4:
952
HANDLE_DW_ATE(0x10, UTF, 4, DWARF)
953
// New in DWARF v5:
954
HANDLE_DW_ATE(0x11, UCS, 5, DWARF)
955
HANDLE_DW_ATE(0x12, ASCII, 5, DWARF)
956
 
957
// The version numbers of all vendor extensions >0x80 were guessed.
958
// Conflicting:
959
// HANDLE_DW_ATE(0x80, ALTIUM_fract, 2, ALTIUM) = DW_ATE_low_user
960
// HANDLE_DW_ATE(0x81, ALTIUM_accum, 2, ALTIUM)
961
 
962
HANDLE_DW_ATE(0x81, HP_complex_float, 2, HP)
963
HANDLE_DW_ATE(0x82, HP_float128, 2, HP)
964
HANDLE_DW_ATE(0x83, HP_complex_float128, 2, HP)
965
HANDLE_DW_ATE(0x84, HP_floathpintel, 2, HP)
966
HANDLE_DW_ATE(0x85, HP_imaginary_float90, 2, HP)
967
HANDLE_DW_ATE(0x86, HP_imaginary_float128, 2, HP)
968
// Conflicting:
969
// HANDLE_DW_ATE(0x86, SUN_imaginary_float, 2, SUN)
970
 
971
// DWARF attribute endianity
972
HANDLE_DW_END(0x00, default)
973
HANDLE_DW_END(0x01, big)
974
HANDLE_DW_END(0x02, little)
975
 
976
// DWARF virtuality codes.
977
HANDLE_DW_VIRTUALITY(0x00, none)
978
HANDLE_DW_VIRTUALITY(0x01, virtual)
979
HANDLE_DW_VIRTUALITY(0x02, pure_virtual)
980
 
981
// DWARF v5 Defaulted Member Encodings.
982
HANDLE_DW_DEFAULTED(0x00, no)
983
HANDLE_DW_DEFAULTED(0x01, in_class)
984
HANDLE_DW_DEFAULTED(0x02, out_of_class)
985
 
986
// DWARF calling convention codes.
987
HANDLE_DW_CC(0x01, normal)
988
HANDLE_DW_CC(0x02, program)
989
HANDLE_DW_CC(0x03, nocall)
990
// New in DWARF v5:
991
HANDLE_DW_CC(0x04, pass_by_reference)
992
HANDLE_DW_CC(0x05, pass_by_value)
993
// Vendor extensions:
994
HANDLE_DW_CC(0x40, GNU_renesas_sh)
995
HANDLE_DW_CC(0x41, GNU_borland_fastcall_i386)
996
HANDLE_DW_CC(0xb0, BORLAND_safecall)
997
HANDLE_DW_CC(0xb1, BORLAND_stdcall)
998
HANDLE_DW_CC(0xb2, BORLAND_pascal)
999
HANDLE_DW_CC(0xb3, BORLAND_msfastcall)
1000
HANDLE_DW_CC(0xb4, BORLAND_msreturn)
1001
HANDLE_DW_CC(0xb5, BORLAND_thiscall)
1002
HANDLE_DW_CC(0xb6, BORLAND_fastcall)
1003
HANDLE_DW_CC(0xc0, LLVM_vectorcall)
1004
HANDLE_DW_CC(0xc1, LLVM_Win64)
1005
HANDLE_DW_CC(0xc2, LLVM_X86_64SysV)
1006
HANDLE_DW_CC(0xc3, LLVM_AAPCS)
1007
HANDLE_DW_CC(0xc4, LLVM_AAPCS_VFP)
1008
HANDLE_DW_CC(0xc5, LLVM_IntelOclBicc)
1009
HANDLE_DW_CC(0xc6, LLVM_SpirFunction)
1010
HANDLE_DW_CC(0xc7, LLVM_OpenCLKernel)
1011
HANDLE_DW_CC(0xc8, LLVM_Swift)
1012
HANDLE_DW_CC(0xc9, LLVM_PreserveMost)
1013
HANDLE_DW_CC(0xca, LLVM_PreserveAll)
1014
HANDLE_DW_CC(0xcb, LLVM_X86RegCall)
1015
// From GCC source code (include/dwarf2.h): This DW_CC_ value is not currently
1016
// generated by any toolchain.  It is used internally to GDB to indicate OpenCL
1017
// C functions that have been compiled with the IBM XL C for OpenCL compiler and
1018
// use a non-platform calling convention for passing OpenCL C vector types.
1019
HANDLE_DW_CC(0xff, GDB_IBM_OpenCL)
1020
 
1021
// Line Number Extended Opcode Encodings
1022
HANDLE_DW_LNE(0x01, end_sequence)
1023
HANDLE_DW_LNE(0x02, set_address)
1024
HANDLE_DW_LNE(0x03, define_file)
1025
// New in DWARF v4:
1026
HANDLE_DW_LNE(0x04, set_discriminator)
1027
 
1028
// Line Number Standard Opcode Encodings.
1029
HANDLE_DW_LNS(0x00, extended_op)
1030
HANDLE_DW_LNS(0x01, copy)
1031
HANDLE_DW_LNS(0x02, advance_pc)
1032
HANDLE_DW_LNS(0x03, advance_line)
1033
HANDLE_DW_LNS(0x04, set_file)
1034
HANDLE_DW_LNS(0x05, set_column)
1035
HANDLE_DW_LNS(0x06, negate_stmt)
1036
HANDLE_DW_LNS(0x07, set_basic_block)
1037
HANDLE_DW_LNS(0x08, const_add_pc)
1038
HANDLE_DW_LNS(0x09, fixed_advance_pc)
1039
// New in DWARF v3:
1040
HANDLE_DW_LNS(0x0a, set_prologue_end)
1041
HANDLE_DW_LNS(0x0b, set_epilogue_begin)
1042
HANDLE_DW_LNS(0x0c, set_isa)
1043
 
1044
// DWARF v5 Line number header entry format.
1045
HANDLE_DW_LNCT(0x01, path)
1046
HANDLE_DW_LNCT(0x02, directory_index)
1047
HANDLE_DW_LNCT(0x03, timestamp)
1048
HANDLE_DW_LNCT(0x04, size)
1049
HANDLE_DW_LNCT(0x05, MD5)
1050
// A vendor extension until http://dwarfstd.org/ShowIssue.php?issue=180201.1 is
1051
// accepted and incorporated into the next DWARF standard.
1052
HANDLE_DW_LNCT(0x2001, LLVM_source)
1053
 
1054
// DWARF v5 Macro information.
1055
HANDLE_DW_MACRO(0x01, define)
1056
HANDLE_DW_MACRO(0x02, undef)
1057
HANDLE_DW_MACRO(0x03, start_file)
1058
HANDLE_DW_MACRO(0x04, end_file)
1059
HANDLE_DW_MACRO(0x05, define_strp)
1060
HANDLE_DW_MACRO(0x06, undef_strp)
1061
HANDLE_DW_MACRO(0x07, import)
1062
HANDLE_DW_MACRO(0x08, define_sup)
1063
HANDLE_DW_MACRO(0x09, undef_sup)
1064
HANDLE_DW_MACRO(0x0a, import_sup)
1065
HANDLE_DW_MACRO(0x0b, define_strx)
1066
HANDLE_DW_MACRO(0x0c, undef_strx)
1067
 
1068
// GNU .debug_macro extension.
1069
HANDLE_DW_MACRO_GNU(0x01, define)
1070
HANDLE_DW_MACRO_GNU(0x02, undef)
1071
HANDLE_DW_MACRO_GNU(0x03, start_file)
1072
HANDLE_DW_MACRO_GNU(0x04, end_file)
1073
HANDLE_DW_MACRO_GNU(0x05, define_indirect)
1074
HANDLE_DW_MACRO_GNU(0x06, undef_indirect)
1075
HANDLE_DW_MACRO_GNU(0x07, transparent_include)
1076
HANDLE_DW_MACRO_GNU(0x08, define_indirect_alt)
1077
HANDLE_DW_MACRO_GNU(0x09, undef_indirect_alt)
1078
HANDLE_DW_MACRO_GNU(0x0a, transparent_include_alt)
1079
 
1080
// DWARF v5 Macro header flags.
1081
HANDLE_MACRO_FLAG(0x01, OFFSET_SIZE)
1082
HANDLE_MACRO_FLAG(0x02, DEBUG_LINE_OFFSET)
1083
HANDLE_MACRO_FLAG(0x04, OPCODE_OPERANDS_TABLE)
1084
 
1085
// DWARF v5 Range List Entry encoding values.
1086
HANDLE_DW_RLE(0x00, end_of_list)
1087
HANDLE_DW_RLE(0x01, base_addressx)
1088
HANDLE_DW_RLE(0x02, startx_endx)
1089
HANDLE_DW_RLE(0x03, startx_length)
1090
HANDLE_DW_RLE(0x04, offset_pair)
1091
HANDLE_DW_RLE(0x05, base_address)
1092
HANDLE_DW_RLE(0x06, start_end)
1093
HANDLE_DW_RLE(0x07, start_length)
1094
 
1095
// DWARF v5 Loc List Entry encoding values.
1096
HANDLE_DW_LLE(0x00, end_of_list)
1097
HANDLE_DW_LLE(0x01, base_addressx)
1098
HANDLE_DW_LLE(0x02, startx_endx)
1099
HANDLE_DW_LLE(0x03, startx_length)
1100
HANDLE_DW_LLE(0x04, offset_pair)
1101
HANDLE_DW_LLE(0x05, default_location)
1102
HANDLE_DW_LLE(0x06, base_address)
1103
HANDLE_DW_LLE(0x07, start_end)
1104
HANDLE_DW_LLE(0x08, start_length)
1105
 
1106
// Call frame instruction encodings.
1107
HANDLE_DW_CFA(0x00, nop)
1108
HANDLE_DW_CFA(0x40, advance_loc)
1109
HANDLE_DW_CFA(0x80, offset)
1110
HANDLE_DW_CFA(0xc0, restore)
1111
HANDLE_DW_CFA(0x01, set_loc)
1112
HANDLE_DW_CFA(0x02, advance_loc1)
1113
HANDLE_DW_CFA(0x03, advance_loc2)
1114
HANDLE_DW_CFA(0x04, advance_loc4)
1115
HANDLE_DW_CFA(0x05, offset_extended)
1116
HANDLE_DW_CFA(0x06, restore_extended)
1117
HANDLE_DW_CFA(0x07, undefined)
1118
HANDLE_DW_CFA(0x08, same_value)
1119
HANDLE_DW_CFA(0x09, register)
1120
HANDLE_DW_CFA(0x0a, remember_state)
1121
HANDLE_DW_CFA(0x0b, restore_state)
1122
HANDLE_DW_CFA(0x0c, def_cfa)
1123
HANDLE_DW_CFA(0x0d, def_cfa_register)
1124
HANDLE_DW_CFA(0x0e, def_cfa_offset)
1125
// New in DWARF v3:
1126
HANDLE_DW_CFA(0x0f, def_cfa_expression)
1127
HANDLE_DW_CFA(0x10, expression)
1128
HANDLE_DW_CFA(0x11, offset_extended_sf)
1129
HANDLE_DW_CFA(0x12, def_cfa_sf)
1130
HANDLE_DW_CFA(0x13, def_cfa_offset_sf)
1131
HANDLE_DW_CFA(0x14, val_offset)
1132
HANDLE_DW_CFA(0x15, val_offset_sf)
1133
HANDLE_DW_CFA(0x16, val_expression)
1134
// Vendor extensions:
1135
HANDLE_DW_CFA_PRED(0x1d, MIPS_advance_loc8, SELECT_MIPS64)
1136
HANDLE_DW_CFA_PRED(0x2d, GNU_window_save, SELECT_SPARC)
1137
HANDLE_DW_CFA_PRED(0x2d, AARCH64_negate_ra_state, SELECT_AARCH64)
1138
HANDLE_DW_CFA_PRED(0x2e, GNU_args_size, SELECT_X86)
1139
// Heterogeneous Debugging Extension defined at
1140
// https://llvm.org/docs/AMDGPUDwarfExtensionsForHeterogeneousDebugging.html#cfa-definition-instructions
1141
HANDLE_DW_CFA(0x30, LLVM_def_aspace_cfa)
1142
HANDLE_DW_CFA(0x31, LLVM_def_aspace_cfa_sf)
1143
 
1144
// Apple Objective-C Property Attributes.
1145
// Keep this list in sync with clang's DeclObjCCommon.h
1146
// ObjCPropertyAttribute::Kind!
1147
HANDLE_DW_APPLE_PROPERTY(0x01, readonly)
1148
HANDLE_DW_APPLE_PROPERTY(0x02, getter)
1149
HANDLE_DW_APPLE_PROPERTY(0x04, assign)
1150
HANDLE_DW_APPLE_PROPERTY(0x08, readwrite)
1151
HANDLE_DW_APPLE_PROPERTY(0x10, retain)
1152
HANDLE_DW_APPLE_PROPERTY(0x20, copy)
1153
HANDLE_DW_APPLE_PROPERTY(0x40, nonatomic)
1154
HANDLE_DW_APPLE_PROPERTY(0x80, setter)
1155
HANDLE_DW_APPLE_PROPERTY(0x100, atomic)
1156
HANDLE_DW_APPLE_PROPERTY(0x200, weak)
1157
HANDLE_DW_APPLE_PROPERTY(0x400, strong)
1158
HANDLE_DW_APPLE_PROPERTY(0x800, unsafe_unretained)
1159
HANDLE_DW_APPLE_PROPERTY(0x1000, nullability)
1160
HANDLE_DW_APPLE_PROPERTY(0x2000, null_resettable)
1161
HANDLE_DW_APPLE_PROPERTY(0x4000, class)
1162
 
1163
// DWARF v5 Unit Types.
1164
HANDLE_DW_UT(0x01, compile)
1165
HANDLE_DW_UT(0x02, type)
1166
HANDLE_DW_UT(0x03, partial)
1167
HANDLE_DW_UT(0x04, skeleton)
1168
HANDLE_DW_UT(0x05, split_compile)
1169
HANDLE_DW_UT(0x06, split_type)
1170
 
1171
// DWARF section types. (enum name, ELF name, ELF DWO name, cmdline name,
1172
// option) Note that these IDs don't mean anything.
1173
// TODO: Add Mach-O and COFF names.
1174
// Official DWARF sections.
1175
HANDLE_DWARF_SECTION(DebugAbbrev, ".debug_abbrev", "debug-abbrev", BoolOption)
1176
HANDLE_DWARF_SECTION(DebugAddr, ".debug_addr", "debug-addr", BoolOption)
1177
HANDLE_DWARF_SECTION(DebugAranges, ".debug_aranges", "debug-aranges",
1178
                     BoolOption)
1179
HANDLE_DWARF_SECTION(DebugInfo, ".debug_info", "debug-info", OffsetOption)
1180
HANDLE_DWARF_SECTION(DebugTypes, ".debug_types", "debug-types", OffsetOption)
1181
HANDLE_DWARF_SECTION(DebugLine, ".debug_line", "debug-line", OffsetOption)
1182
HANDLE_DWARF_SECTION(DebugLineStr, ".debug_line_str", "debug-line-str",
1183
                     BoolOption)
1184
HANDLE_DWARF_SECTION(DebugLoc, ".debug_loc", "debug-loc", OffsetOption)
1185
HANDLE_DWARF_SECTION(DebugLoclists, ".debug_loclists", "debug-loclists",
1186
                     OffsetOption)
1187
HANDLE_DWARF_SECTION(DebugFrame, ".debug_frame", "debug-frame", OffsetOption)
1188
HANDLE_DWARF_SECTION(DebugMacro, ".debug_macro", "debug-macro", BoolOption)
1189
HANDLE_DWARF_SECTION(DebugNames, ".debug_names", "debug-names", BoolOption)
1190
HANDLE_DWARF_SECTION(DebugPubnames, ".debug_pubnames", "debug-pubnames",
1191
                     BoolOption)
1192
HANDLE_DWARF_SECTION(DebugPubtypes, ".debug_pubtypes", "debug-pubtypes",
1193
                     BoolOption)
1194
HANDLE_DWARF_SECTION(DebugGnuPubnames, ".debug_gnu_pubnames",
1195
                     "debug-gnu-pubnames", BoolOption)
1196
HANDLE_DWARF_SECTION(DebugGnuPubtypes, ".debug_gnu_pubtypes",
1197
                     "debug-gnu-pubtypes", BoolOption)
1198
HANDLE_DWARF_SECTION(DebugRanges, ".debug_ranges", "debug-ranges", BoolOption)
1199
HANDLE_DWARF_SECTION(DebugRnglists, ".debug_rnglists", "debug-rnglists",
1200
                     BoolOption)
1201
HANDLE_DWARF_SECTION(DebugStr, ".debug_str", "debug-str", BoolOption)
1202
HANDLE_DWARF_SECTION(DebugStrOffsets, ".debug_str_offsets", "debug-str-offsets",
1203
                     BoolOption)
1204
HANDLE_DWARF_SECTION(DebugCUIndex, ".debug_cu_index", "debug-cu-index",
1205
                     BoolOption)
1206
HANDLE_DWARF_SECTION(DebugTUIndex, ".debug_tu_index", "debug-tu-index",
1207
                     BoolOption)
1208
// Vendor extensions.
1209
HANDLE_DWARF_SECTION(AppleNames, ".apple_names", "apple-names", BoolOption)
1210
HANDLE_DWARF_SECTION(AppleTypes, ".apple_types", "apple-types", BoolOption)
1211
HANDLE_DWARF_SECTION(AppleNamespaces, ".apple_namespaces", "apple-namespaces",
1212
                     BoolOption)
1213
HANDLE_DWARF_SECTION(AppleObjC, ".apple_objc", "apple-objc", BoolOption)
1214
HANDLE_DWARF_SECTION(GdbIndex, ".gdb_index", "gdb-index", BoolOption)
1215
 
1216
HANDLE_DW_IDX(0x01, compile_unit)
1217
HANDLE_DW_IDX(0x02, type_unit)
1218
HANDLE_DW_IDX(0x03, die_offset)
1219
HANDLE_DW_IDX(0x04, parent)
1220
HANDLE_DW_IDX(0x05, type_hash)
1221
HANDLE_DW_IDX(0x2000, GNU_internal)
1222
HANDLE_DW_IDX(0x2001, GNU_external)
1223
 
1224
// DWARF package file section identifiers.
1225
// DWARFv5, section 7.3.5.3, table 7.1.
1226
HANDLE_DW_SECT(1, INFO)
1227
HANDLE_DW_SECT(3, ABBREV)
1228
HANDLE_DW_SECT(4, LINE)
1229
HANDLE_DW_SECT(5, LOCLISTS)
1230
HANDLE_DW_SECT(6, STR_OFFSETS)
1231
HANDLE_DW_SECT(7, MACRO)
1232
HANDLE_DW_SECT(8, RNGLISTS)
1233
 
1234
#undef HANDLE_DW_TAG
1235
#undef HANDLE_DW_AT
1236
#undef HANDLE_DW_FORM
1237
#undef HANDLE_DW_OP
1238
#undef HANDLE_DW_LANG
1239
#undef HANDLE_DW_ATE
1240
#undef HANDLE_DW_VIRTUALITY
1241
#undef HANDLE_DW_DEFAULTED
1242
#undef HANDLE_DW_CC
1243
#undef HANDLE_DW_LNS
1244
#undef HANDLE_DW_LNE
1245
#undef HANDLE_DW_LNCT
1246
#undef HANDLE_DW_MACRO
1247
#undef HANDLE_DW_MACRO_GNU
1248
#undef HANDLE_MACRO_FLAG
1249
#undef HANDLE_DW_RLE
1250
#undef HANDLE_DW_LLE
1251
#undef HANDLE_DW_CFA
1252
#undef HANDLE_DW_CFA_PRED
1253
#undef HANDLE_DW_APPLE_PROPERTY
1254
#undef HANDLE_DW_UT
1255
#undef HANDLE_DWARF_SECTION
1256
#undef HANDLE_DW_IDX
1257
#undef HANDLE_DW_END
1258
#undef HANDLE_DW_SECT