Back to home page

EIC code displayed by LXR

 
 

    


Warning, /include/llvm/BinaryFormat/Dwarf.def is written in an unsupported language. File is not indexed.

0001 //===- llvm/Support/Dwarf.def - Dwarf definitions ---------------*- C++ -*-===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 //
0009 // Macros for running through Dwarf enumerators.
0010 //
0011 //===----------------------------------------------------------------------===//
0012 
0013 // TODO: Add other DW-based macros.
0014 #if !(defined HANDLE_DW_TAG || defined HANDLE_DW_AT ||                         \
0015       defined HANDLE_DW_FORM || defined HANDLE_DW_OP ||                        \
0016       defined HANDLE_DW_OP_LLVM_USEROP || defined HANDLE_DW_LANG ||            \
0017       defined HANDLE_DW_LNAME || defined HANDLE_DW_ATE ||                      \
0018       defined HANDLE_DW_VIRTUALITY || defined HANDLE_DW_DEFAULTED ||           \
0019       defined HANDLE_DW_CC || defined HANDLE_DW_LNS ||                         \
0020       defined HANDLE_DW_LNE || defined HANDLE_DW_LNCT ||                       \
0021       defined HANDLE_DW_MACRO || defined HANDLE_DW_MACRO_GNU ||                \
0022       defined HANDLE_MACRO_FLAG || defined HANDLE_DW_RLE ||                    \
0023       defined HANDLE_DW_LLE ||                                                 \
0024       (defined HANDLE_DW_CFA && defined HANDLE_DW_CFA_PRED) ||                 \
0025       defined HANDLE_DW_APPLE_PROPERTY || defined HANDLE_DW_UT ||              \
0026       defined HANDLE_DWARF_SECTION || defined HANDLE_DW_IDX ||                 \
0027       defined HANDLE_DW_END || defined HANDLE_DW_SECT)
0028 #error "Missing macro definition of HANDLE_DW*"
0029 #endif
0030 
0031 #ifndef HANDLE_DW_TAG
0032 #define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR, KIND)
0033 #endif
0034 
0035 // Note that DW_KIND is not a DWARF concept, but rather a way for us to
0036 // generate a list of tags that belong together.
0037 #ifndef DW_KIND_NONE
0038 #define DW_KIND_NONE 0
0039 #endif
0040 
0041 #ifndef DW_KIND_TYPE
0042 #define DW_KIND_TYPE 1
0043 #endif
0044 
0045 #ifndef HANDLE_DW_AT
0046 #define HANDLE_DW_AT(ID, NAME, VERSION, VENDOR)
0047 #endif
0048 
0049 #ifndef HANDLE_DW_FORM
0050 #define HANDLE_DW_FORM(ID, NAME, VERSION, VENDOR)
0051 #endif
0052 
0053 #ifndef HANDLE_DW_OP
0054 #define HANDLE_DW_OP(ID, NAME, OPERANDS, ARITY, VERSION, VENDOR)
0055 #endif
0056 
0057 #ifndef HANDLE_DW_OP_LLVM_USEROP
0058 #define HANDLE_DW_OP_LLVM_USEROP(ID, NAME)
0059 #endif
0060 
0061 #ifndef HANDLE_DW_LANG
0062 #define HANDLE_DW_LANG(ID, NAME, LOWER_BOUND, VERSION, VENDOR)
0063 #endif
0064 
0065 #ifndef HANDLE_DW_LNAME
0066 #define HANDLE_DW_LNAME(ID, NAME, DESC, LOWER_BOUND)
0067 #endif
0068 
0069 #ifndef HANDLE_DW_ATE
0070 #define HANDLE_DW_ATE(ID, NAME, VERSION, VENDOR)
0071 #endif
0072 
0073 #ifndef HANDLE_DW_VIRTUALITY
0074 #define HANDLE_DW_VIRTUALITY(ID, NAME)
0075 #endif
0076 
0077 #ifndef HANDLE_DW_DEFAULTED
0078 #define HANDLE_DW_DEFAULTED(ID, NAME)
0079 #endif
0080 
0081 #ifndef HANDLE_DW_CC
0082 #define HANDLE_DW_CC(ID, NAME)
0083 #endif
0084 
0085 #ifndef HANDLE_DW_LNS
0086 #define HANDLE_DW_LNS(ID, NAME)
0087 #endif
0088 
0089 #ifndef HANDLE_DW_LNE
0090 #define HANDLE_DW_LNE(ID, NAME)
0091 #endif
0092 
0093 #ifndef HANDLE_DW_LNCT
0094 #define HANDLE_DW_LNCT(ID, NAME)
0095 #endif
0096 
0097 #ifndef HANDLE_DW_MACRO
0098 #define HANDLE_DW_MACRO(ID, NAME)
0099 #endif
0100 
0101 #ifndef HANDLE_DW_MACRO_GNU
0102 #define HANDLE_DW_MACRO_GNU(ID, NAME)
0103 #endif
0104 
0105 #ifndef HANDLE_MACRO_FLAG
0106 #define HANDLE_MACRO_FLAG(ID, NAME)
0107 #endif
0108 
0109 #ifndef HANDLE_DW_RLE
0110 #define HANDLE_DW_RLE(ID, NAME)
0111 #endif
0112 
0113 #ifndef HANDLE_DW_LLE
0114 #define HANDLE_DW_LLE(ID, NAME)
0115 #endif
0116 
0117 #ifndef HANDLE_DW_CFA
0118 #define HANDLE_DW_CFA(ID, NAME)
0119 #endif
0120 
0121 #ifndef HANDLE_DW_CFA_PRED
0122 #define HANDLE_DW_CFA_PRED(ID, NAME, PRED)
0123 #endif
0124 
0125 #ifndef HANDLE_DW_APPLE_PROPERTY
0126 #define HANDLE_DW_APPLE_PROPERTY(ID, NAME)
0127 #endif
0128 
0129 #ifndef HANDLE_DW_UT
0130 #define HANDLE_DW_UT(ID, NAME)
0131 #endif
0132 
0133 #ifndef HANDLE_DWARF_SECTION
0134 #define HANDLE_DWARF_SECTION(ENUM_NAME, ELF_NAME, CMDLINE_NAME, OPTION)
0135 #endif
0136 
0137 #ifndef HANDLE_DW_IDX
0138 #define HANDLE_DW_IDX(ID, NAME)
0139 #endif
0140 
0141 #ifndef HANDLE_DW_END
0142 #define HANDLE_DW_END(ID, NAME)
0143 #endif
0144 
0145 #ifndef HANDLE_DW_SECT
0146 #define HANDLE_DW_SECT(ID, NAME)
0147 #endif
0148 
0149 HANDLE_DW_TAG(0x0000, null, 2, DWARF, DW_KIND_NONE)
0150 HANDLE_DW_TAG(0x0001, array_type, 2, DWARF, DW_KIND_TYPE)
0151 HANDLE_DW_TAG(0x0002, class_type, 2, DWARF, DW_KIND_TYPE)
0152 HANDLE_DW_TAG(0x0003, entry_point, 2, DWARF, DW_KIND_NONE)
0153 HANDLE_DW_TAG(0x0004, enumeration_type, 2, DWARF, DW_KIND_TYPE)
0154 HANDLE_DW_TAG(0x0005, formal_parameter, 2, DWARF, DW_KIND_NONE)
0155 HANDLE_DW_TAG(0x0008, imported_declaration, 2, DWARF, DW_KIND_NONE)
0156 HANDLE_DW_TAG(0x000a, label, 2, DWARF, DW_KIND_NONE)
0157 HANDLE_DW_TAG(0x000b, lexical_block, 2, DWARF, DW_KIND_NONE)
0158 HANDLE_DW_TAG(0x000d, member, 2, DWARF, DW_KIND_NONE)
0159 HANDLE_DW_TAG(0x000f, pointer_type, 2, DWARF, DW_KIND_TYPE)
0160 HANDLE_DW_TAG(0x0010, reference_type, 2, DWARF, DW_KIND_TYPE)
0161 HANDLE_DW_TAG(0x0011, compile_unit, 2, DWARF, DW_KIND_NONE)
0162 HANDLE_DW_TAG(0x0012, string_type, 2, DWARF, DW_KIND_TYPE)
0163 HANDLE_DW_TAG(0x0013, structure_type, 2, DWARF, DW_KIND_TYPE)
0164 HANDLE_DW_TAG(0x0015, subroutine_type, 2, DWARF, DW_KIND_TYPE)
0165 HANDLE_DW_TAG(0x0016, typedef, 2, DWARF, DW_KIND_TYPE)
0166 HANDLE_DW_TAG(0x0017, union_type, 2, DWARF, DW_KIND_TYPE)
0167 HANDLE_DW_TAG(0x0018, unspecified_parameters, 2, DWARF, DW_KIND_NONE)
0168 HANDLE_DW_TAG(0x0019, variant, 2, DWARF, DW_KIND_NONE)
0169 HANDLE_DW_TAG(0x001a, common_block, 2, DWARF, DW_KIND_NONE)
0170 HANDLE_DW_TAG(0x001b, common_inclusion, 2, DWARF, DW_KIND_NONE)
0171 HANDLE_DW_TAG(0x001c, inheritance, 2, DWARF, DW_KIND_NONE)
0172 HANDLE_DW_TAG(0x001d, inlined_subroutine, 2, DWARF, DW_KIND_NONE)
0173 HANDLE_DW_TAG(0x001e, module, 2, DWARF, DW_KIND_NONE)
0174 HANDLE_DW_TAG(0x001f, ptr_to_member_type, 2, DWARF, DW_KIND_TYPE)
0175 HANDLE_DW_TAG(0x0020, set_type, 2, DWARF, DW_KIND_TYPE)
0176 HANDLE_DW_TAG(0x0021, subrange_type, 2, DWARF, DW_KIND_TYPE)
0177 HANDLE_DW_TAG(0x0022, with_stmt, 2, DWARF, DW_KIND_NONE)
0178 HANDLE_DW_TAG(0x0023, access_declaration, 2, DWARF, DW_KIND_NONE)
0179 HANDLE_DW_TAG(0x0024, base_type, 2, DWARF, DW_KIND_TYPE)
0180 HANDLE_DW_TAG(0x0025, catch_block, 2, DWARF, DW_KIND_NONE)
0181 HANDLE_DW_TAG(0x0026, const_type, 2, DWARF, DW_KIND_TYPE)
0182 HANDLE_DW_TAG(0x0027, constant, 2, DWARF, DW_KIND_NONE)
0183 HANDLE_DW_TAG(0x0028, enumerator, 2, DWARF, DW_KIND_NONE)
0184 HANDLE_DW_TAG(0x0029, file_type, 2, DWARF, DW_KIND_TYPE)
0185 HANDLE_DW_TAG(0x002a, friend, 2, DWARF, DW_KIND_NONE)
0186 HANDLE_DW_TAG(0x002b, namelist, 2, DWARF, DW_KIND_NONE)
0187 HANDLE_DW_TAG(0x002c, namelist_item, 2, DWARF, DW_KIND_NONE)
0188 HANDLE_DW_TAG(0x002d, packed_type, 2, DWARF, DW_KIND_TYPE)
0189 HANDLE_DW_TAG(0x002e, subprogram, 2, DWARF, DW_KIND_NONE)
0190 HANDLE_DW_TAG(0x002f, template_type_parameter, 2, DWARF, DW_KIND_NONE)
0191 HANDLE_DW_TAG(0x0030, template_value_parameter, 2, DWARF, DW_KIND_NONE)
0192 HANDLE_DW_TAG(0x0031, thrown_type, 2, DWARF, DW_KIND_TYPE)
0193 HANDLE_DW_TAG(0x0032, try_block, 2, DWARF, DW_KIND_NONE)
0194 HANDLE_DW_TAG(0x0033, variant_part, 2, DWARF, DW_KIND_NONE)
0195 HANDLE_DW_TAG(0x0034, variable, 2, DWARF, DW_KIND_NONE)
0196 HANDLE_DW_TAG(0x0035, volatile_type, 2, DWARF, DW_KIND_TYPE)
0197 // New in DWARF v3:
0198 HANDLE_DW_TAG(0x0036, dwarf_procedure, 3, DWARF, DW_KIND_NONE)
0199 HANDLE_DW_TAG(0x0037, restrict_type, 3, DWARF, DW_KIND_TYPE)
0200 HANDLE_DW_TAG(0x0038, interface_type, 3, DWARF, DW_KIND_TYPE)
0201 HANDLE_DW_TAG(0x0039, namespace, 3, DWARF, DW_KIND_NONE)
0202 HANDLE_DW_TAG(0x003a, imported_module, 3, DWARF, DW_KIND_NONE)
0203 HANDLE_DW_TAG(0x003b, unspecified_type, 3, DWARF, DW_KIND_TYPE)
0204 HANDLE_DW_TAG(0x003c, partial_unit, 3, DWARF, DW_KIND_NONE)
0205 HANDLE_DW_TAG(0x003d, imported_unit, 3, DWARF, DW_KIND_NONE)
0206 HANDLE_DW_TAG(0x003f, condition, 3, DWARF, DW_KIND_NONE)
0207 HANDLE_DW_TAG(0x0040, shared_type, 3, DWARF, DW_KIND_TYPE)
0208 // New in DWARF v4:
0209 HANDLE_DW_TAG(0x0041, type_unit, 4, DWARF, DW_KIND_NONE)
0210 HANDLE_DW_TAG(0x0042, rvalue_reference_type, 4, DWARF, DW_KIND_TYPE)
0211 HANDLE_DW_TAG(0x0043, template_alias, 4, DWARF, DW_KIND_TYPE)
0212 // New in DWARF v5:
0213 HANDLE_DW_TAG(0x0044, coarray_type, 5, DWARF, DW_KIND_TYPE)
0214 HANDLE_DW_TAG(0x0045, generic_subrange, 5, DWARF, DW_KIND_NONE)
0215 HANDLE_DW_TAG(0x0046, dynamic_type, 5, DWARF, DW_KIND_TYPE)
0216 HANDLE_DW_TAG(0x0047, atomic_type, 5, DWARF, DW_KIND_TYPE)
0217 HANDLE_DW_TAG(0x0048, call_site, 5, DWARF, DW_KIND_NONE)
0218 HANDLE_DW_TAG(0x0049, call_site_parameter, 5, DWARF, DW_KIND_NONE)
0219 HANDLE_DW_TAG(0x004a, skeleton_unit, 5, DWARF, DW_KIND_NONE)
0220 HANDLE_DW_TAG(0x004b, immutable_type, 5, DWARF, DW_KIND_TYPE)
0221 // Vendor extensions:
0222 HANDLE_DW_TAG(0x4081, MIPS_loop, 0, MIPS, DW_KIND_NONE)
0223 // Conflicting:
0224 // HANDLE_DW_TAG(0x4081, HP_array_descriptor, 0, HP, DW_KIND_NONE)
0225 HANDLE_DW_TAG(0x4101, format_label, 0, GNU, DW_KIND_NONE)
0226 HANDLE_DW_TAG(0x4102, function_template, 0, GNU, DW_KIND_NONE)
0227 HANDLE_DW_TAG(0x4103, class_template, 0, GNU, DW_KIND_NONE)
0228 
0229 HANDLE_DW_TAG(0x4104, GNU_BINCL, 0, GNU, DW_KIND_NONE)
0230 HANDLE_DW_TAG(0x4105, GNU_EINCL, 0, GNU, DW_KIND_NONE)
0231 HANDLE_DW_TAG(0x4106, GNU_template_template_param, 0, GNU, DW_KIND_NONE)
0232 HANDLE_DW_TAG(0x4107, GNU_template_parameter_pack, 0, GNU, DW_KIND_NONE)
0233 HANDLE_DW_TAG(0x4108, GNU_formal_parameter_pack, 0, GNU, DW_KIND_NONE)
0234 HANDLE_DW_TAG(0x4109, GNU_call_site, 0, GNU, DW_KIND_NONE)
0235 HANDLE_DW_TAG(0x410a, GNU_call_site_parameter, 0, GNU, DW_KIND_NONE)
0236 
0237 HANDLE_DW_TAG(0x4200, APPLE_property, 0, APPLE, DW_KIND_NONE)
0238 
0239 HANDLE_DW_TAG(0x4201, SUN_function_template, 0, SUN, DW_KIND_NONE)
0240 HANDLE_DW_TAG(0x4202, SUN_class_template, 0, SUN, DW_KIND_NONE)
0241 HANDLE_DW_TAG(0x4203, SUN_struct_template, 0, SUN, DW_KIND_NONE)
0242 HANDLE_DW_TAG(0x4204, SUN_union_template, 0, SUN, DW_KIND_NONE)
0243 HANDLE_DW_TAG(0x4205, SUN_indirect_inheritance, 0, SUN, DW_KIND_NONE)
0244 HANDLE_DW_TAG(0x4206, SUN_codeflags, 0, SUN, DW_KIND_NONE)
0245 HANDLE_DW_TAG(0x4207, SUN_memop_info, 0, SUN, DW_KIND_NONE)
0246 HANDLE_DW_TAG(0x4208, SUN_omp_child_func, 0, SUN, DW_KIND_NONE)
0247 HANDLE_DW_TAG(0x4209, SUN_rtti_descriptor, 0, SUN, DW_KIND_NONE)
0248 HANDLE_DW_TAG(0x420a, SUN_dtor_info, 0, SUN, DW_KIND_NONE)
0249 HANDLE_DW_TAG(0x420b, SUN_dtor, 0, SUN, DW_KIND_NONE)
0250 HANDLE_DW_TAG(0x420c, SUN_f90_interface, 0, SUN, DW_KIND_NONE)
0251 HANDLE_DW_TAG(0x420d, SUN_fortran_vax_structure, 0, SUN, DW_KIND_NONE)
0252 HANDLE_DW_TAG(0x42ff, SUN_hi, 0, SUN, DW_KIND_NONE)
0253 
0254 // LLVM
0255 HANDLE_DW_TAG(0x4300, LLVM_ptrauth_type, 0, LLVM, DW_KIND_TYPE)
0256 
0257 // DSP-C/Starcore __circ, _rev
0258 HANDLE_DW_TAG(0x5101, ALTIUM_circ_type, 0, ALTIUM, DW_KIND_NONE)
0259 HANDLE_DW_TAG(0x5102, ALTIUM_mwa_circ_type, 0, ALTIUM, DW_KIND_NONE)
0260 HANDLE_DW_TAG(0x5103, ALTIUM_rev_carry_type, 0, ALTIUM, DW_KIND_NONE)
0261 // M16 __rom qualifier
0262 HANDLE_DW_TAG(0x5111, ALTIUM_rom, 0, ALTIUM, DW_KIND_NONE)
0263 
0264 // LLVM
0265 HANDLE_DW_TAG(0x6000, LLVM_annotation, 0, LLVM, DW_KIND_NONE)
0266 
0267 // Green Hills.
0268 HANDLE_DW_TAG(0x8004, GHS_namespace, 0, GHS, DW_KIND_NONE)
0269 HANDLE_DW_TAG(0x8005, GHS_using_namespace, 0, GHS, DW_KIND_NONE)
0270 HANDLE_DW_TAG(0x8006, GHS_using_declaration, 0, GHS, DW_KIND_NONE)
0271 HANDLE_DW_TAG(0x8007, GHS_template_templ_param, 0, GHS, DW_KIND_NONE)
0272 
0273 // Unified Parallel C.
0274 HANDLE_DW_TAG(0x8765, UPC_shared_type, 0, UPC, DW_KIND_NONE)
0275 HANDLE_DW_TAG(0x8766, UPC_strict_type, 0, UPC, DW_KIND_NONE)
0276 HANDLE_DW_TAG(0x8767, UPC_relaxed, 0, UPC, DW_KIND_NONE)
0277 
0278 HANDLE_DW_TAG(0xa000, PGI_kanji_type, 0, PGI, DW_KIND_NONE)
0279 HANDLE_DW_TAG(0xa020, PGI_interface_block, 0, PGI, DW_KIND_NONE)
0280 
0281 HANDLE_DW_TAG(0xb000, BORLAND_property, 0, BORLAND, DW_KIND_NONE)
0282 HANDLE_DW_TAG(0xb001, BORLAND_Delphi_string, 0, BORLAND, DW_KIND_TYPE)
0283 HANDLE_DW_TAG(0xb002, BORLAND_Delphi_dynamic_array, 0, BORLAND, DW_KIND_TYPE)
0284 HANDLE_DW_TAG(0xb003, BORLAND_Delphi_set, 0, BORLAND, DW_KIND_TYPE)
0285 HANDLE_DW_TAG(0xb004, BORLAND_Delphi_variant, 0, BORLAND, DW_KIND_TYPE)
0286 
0287 // Attributes.
0288 HANDLE_DW_AT(0x01, sibling, 2, DWARF)
0289 HANDLE_DW_AT(0x02, location, 2, DWARF)
0290 HANDLE_DW_AT(0x03, name, 2, DWARF)
0291 HANDLE_DW_AT(0x09, ordering, 2, DWARF)
0292 HANDLE_DW_AT(0x0b, byte_size, 2, DWARF)
0293 HANDLE_DW_AT(0x0c, bit_offset, 2, DWARF)
0294 HANDLE_DW_AT(0x0d, bit_size, 2, DWARF)
0295 HANDLE_DW_AT(0x10, stmt_list, 2, DWARF)
0296 HANDLE_DW_AT(0x11, low_pc, 2, DWARF)
0297 HANDLE_DW_AT(0x12, high_pc, 2, DWARF)
0298 HANDLE_DW_AT(0x13, language, 2, DWARF)
0299 HANDLE_DW_AT(0x15, discr, 2, DWARF)
0300 HANDLE_DW_AT(0x16, discr_value, 2, DWARF)
0301 HANDLE_DW_AT(0x17, visibility, 2, DWARF)
0302 HANDLE_DW_AT(0x18, import, 2, DWARF)
0303 HANDLE_DW_AT(0x19, string_length, 2, DWARF)
0304 HANDLE_DW_AT(0x1a, common_reference, 2, DWARF)
0305 HANDLE_DW_AT(0x1b, comp_dir, 2, DWARF)
0306 HANDLE_DW_AT(0x1c, const_value, 2, DWARF)
0307 HANDLE_DW_AT(0x1d, containing_type, 2, DWARF)
0308 HANDLE_DW_AT(0x1e, default_value, 2, DWARF)
0309 HANDLE_DW_AT(0x20, inline, 2, DWARF)
0310 HANDLE_DW_AT(0x21, is_optional, 2, DWARF)
0311 HANDLE_DW_AT(0x22, lower_bound, 2, DWARF)
0312 HANDLE_DW_AT(0x25, producer, 2, DWARF)
0313 HANDLE_DW_AT(0x27, prototyped, 2, DWARF)
0314 HANDLE_DW_AT(0x2a, return_addr, 2, DWARF)
0315 HANDLE_DW_AT(0x2c, start_scope, 2, DWARF)
0316 HANDLE_DW_AT(0x2e, bit_stride, 2, DWARF)
0317 HANDLE_DW_AT(0x2f, upper_bound, 2, DWARF)
0318 HANDLE_DW_AT(0x31, abstract_origin, 2, DWARF)
0319 HANDLE_DW_AT(0x32, accessibility, 2, DWARF)
0320 HANDLE_DW_AT(0x33, address_class, 2, DWARF)
0321 HANDLE_DW_AT(0x34, artificial, 2, DWARF)
0322 HANDLE_DW_AT(0x35, base_types, 2, DWARF)
0323 HANDLE_DW_AT(0x36, calling_convention, 2, DWARF)
0324 HANDLE_DW_AT(0x37, count, 2, DWARF)
0325 HANDLE_DW_AT(0x38, data_member_location, 2, DWARF)
0326 HANDLE_DW_AT(0x39, decl_column, 2, DWARF)
0327 HANDLE_DW_AT(0x3a, decl_file, 2, DWARF)
0328 HANDLE_DW_AT(0x3b, decl_line, 2, DWARF)
0329 HANDLE_DW_AT(0x3c, declaration, 2, DWARF)
0330 HANDLE_DW_AT(0x3d, discr_list, 2, DWARF)
0331 HANDLE_DW_AT(0x3e, encoding, 2, DWARF)
0332 HANDLE_DW_AT(0x3f, external, 2, DWARF)
0333 HANDLE_DW_AT(0x40, frame_base, 2, DWARF)
0334 HANDLE_DW_AT(0x41, friend, 2, DWARF)
0335 HANDLE_DW_AT(0x42, identifier_case, 2, DWARF)
0336 HANDLE_DW_AT(0x43, macro_info, 2, DWARF)
0337 HANDLE_DW_AT(0x44, namelist_item, 2, DWARF)
0338 HANDLE_DW_AT(0x45, priority, 2, DWARF)
0339 HANDLE_DW_AT(0x46, segment, 2, DWARF)
0340 HANDLE_DW_AT(0x47, specification, 2, DWARF)
0341 HANDLE_DW_AT(0x48, static_link, 2, DWARF)
0342 HANDLE_DW_AT(0x49, type, 2, DWARF)
0343 HANDLE_DW_AT(0x4a, use_location, 2, DWARF)
0344 HANDLE_DW_AT(0x4b, variable_parameter, 2, DWARF)
0345 HANDLE_DW_AT(0x4c, virtuality, 2, DWARF)
0346 HANDLE_DW_AT(0x4d, vtable_elem_location, 2, DWARF)
0347 // New in DWARF v3:
0348 HANDLE_DW_AT(0x4e, allocated, 3, DWARF)
0349 HANDLE_DW_AT(0x4f, associated, 3, DWARF)
0350 HANDLE_DW_AT(0x50, data_location, 3, DWARF)
0351 HANDLE_DW_AT(0x51, byte_stride, 3, DWARF)
0352 HANDLE_DW_AT(0x52, entry_pc, 3, DWARF)
0353 HANDLE_DW_AT(0x53, use_UTF8, 3, DWARF)
0354 HANDLE_DW_AT(0x54, extension, 3, DWARF)
0355 HANDLE_DW_AT(0x55, ranges, 3, DWARF)
0356 HANDLE_DW_AT(0x56, trampoline, 3, DWARF)
0357 HANDLE_DW_AT(0x57, call_column, 3, DWARF)
0358 HANDLE_DW_AT(0x58, call_file, 3, DWARF)
0359 HANDLE_DW_AT(0x59, call_line, 3, DWARF)
0360 HANDLE_DW_AT(0x5a, description, 3, DWARF)
0361 HANDLE_DW_AT(0x5b, binary_scale, 3, DWARF)
0362 HANDLE_DW_AT(0x5c, decimal_scale, 3, DWARF)
0363 HANDLE_DW_AT(0x5d, small, 3, DWARF)
0364 HANDLE_DW_AT(0x5e, decimal_sign, 3, DWARF)
0365 HANDLE_DW_AT(0x5f, digit_count, 3, DWARF)
0366 HANDLE_DW_AT(0x60, picture_string, 3, DWARF)
0367 HANDLE_DW_AT(0x61, mutable, 3, DWARF)
0368 HANDLE_DW_AT(0x62, threads_scaled, 3, DWARF)
0369 HANDLE_DW_AT(0x63, explicit, 3, DWARF)
0370 HANDLE_DW_AT(0x64, object_pointer, 3, DWARF)
0371 HANDLE_DW_AT(0x65, endianity, 3, DWARF)
0372 HANDLE_DW_AT(0x66, elemental, 3, DWARF)
0373 HANDLE_DW_AT(0x67, pure, 3, DWARF)
0374 HANDLE_DW_AT(0x68, recursive, 3, DWARF)
0375 // New in DWARF v4:
0376 HANDLE_DW_AT(0x69, signature, 4, DWARF)
0377 HANDLE_DW_AT(0x6a, main_subprogram, 4, DWARF)
0378 HANDLE_DW_AT(0x6b, data_bit_offset, 4, DWARF)
0379 HANDLE_DW_AT(0x6c, const_expr, 4, DWARF)
0380 HANDLE_DW_AT(0x6d, enum_class, 4, DWARF)
0381 HANDLE_DW_AT(0x6e, linkage_name, 4, DWARF)
0382 // New in DWARF v5:
0383 HANDLE_DW_AT(0x6f, string_length_bit_size, 5, DWARF)
0384 HANDLE_DW_AT(0x70, string_length_byte_size, 5, DWARF)
0385 HANDLE_DW_AT(0x71, rank, 5, DWARF)
0386 HANDLE_DW_AT(0x72, str_offsets_base, 5, DWARF)
0387 HANDLE_DW_AT(0x73, addr_base, 5, DWARF)
0388 HANDLE_DW_AT(0x74, rnglists_base, 5, DWARF)
0389 HANDLE_DW_AT(0x75, dwo_id, 0, DWARF) ///< Retracted from DWARF v5.
0390 HANDLE_DW_AT(0x76, dwo_name, 5, DWARF)
0391 HANDLE_DW_AT(0x77, reference, 5, DWARF)
0392 HANDLE_DW_AT(0x78, rvalue_reference, 5, DWARF)
0393 HANDLE_DW_AT(0x79, macros, 5, DWARF)
0394 HANDLE_DW_AT(0x7a, call_all_calls, 5, DWARF)
0395 HANDLE_DW_AT(0x7b, call_all_source_calls, 5, DWARF)
0396 HANDLE_DW_AT(0x7c, call_all_tail_calls, 5, DWARF)
0397 HANDLE_DW_AT(0x7d, call_return_pc, 5, DWARF)
0398 HANDLE_DW_AT(0x7e, call_value, 5, DWARF)
0399 HANDLE_DW_AT(0x7f, call_origin, 5, DWARF)
0400 HANDLE_DW_AT(0x80, call_parameter, 5, DWARF)
0401 HANDLE_DW_AT(0x81, call_pc, 5, DWARF)
0402 HANDLE_DW_AT(0x82, call_tail_call, 5, DWARF)
0403 HANDLE_DW_AT(0x83, call_target, 5, DWARF)
0404 HANDLE_DW_AT(0x84, call_target_clobbered, 5, DWARF)
0405 HANDLE_DW_AT(0x85, call_data_location, 5, DWARF)
0406 HANDLE_DW_AT(0x86, call_data_value, 5, DWARF)
0407 HANDLE_DW_AT(0x87, noreturn, 5, DWARF)
0408 HANDLE_DW_AT(0x88, alignment, 5, DWARF)
0409 HANDLE_DW_AT(0x89, export_symbols, 5, DWARF)
0410 HANDLE_DW_AT(0x8a, deleted, 5, DWARF)
0411 HANDLE_DW_AT(0x8b, defaulted, 5, DWARF)
0412 HANDLE_DW_AT(0x8c, loclists_base, 5, DWARF)
0413 
0414 // Vendor extensions:
0415 HANDLE_DW_AT(0x806, GHS_namespace_alias, 0, GHS)
0416 HANDLE_DW_AT(0x807, GHS_using_namespace, 0, GHS)
0417 HANDLE_DW_AT(0x808, GHS_using_declaration, 0, GHS)
0418 
0419 HANDLE_DW_AT(0x2001, MIPS_fde, 0, MIPS)
0420 HANDLE_DW_AT(0x2002, MIPS_loop_begin, 0, MIPS)
0421 HANDLE_DW_AT(0x2003, MIPS_tail_loop_begin, 0, MIPS)
0422 HANDLE_DW_AT(0x2004, MIPS_epilog_begin, 0, MIPS)
0423 HANDLE_DW_AT(0x2005, MIPS_loop_unroll_factor, 0, MIPS)
0424 HANDLE_DW_AT(0x2006, MIPS_software_pipeline_depth, 0, MIPS)
0425 HANDLE_DW_AT(0x2007, MIPS_linkage_name, 0, MIPS)
0426 // Conflicting:
0427 // HANDLE_DW_AT(0x2007, GHS_mangled, 0, GHS)
0428 HANDLE_DW_AT(0x2008, MIPS_stride, 0, MIPS)
0429 HANDLE_DW_AT(0x2009, MIPS_abstract_name, 0, MIPS)
0430 HANDLE_DW_AT(0x200a, MIPS_clone_origin, 0, MIPS)
0431 HANDLE_DW_AT(0x200b, MIPS_has_inlines, 0, MIPS)
0432 HANDLE_DW_AT(0x200c, MIPS_stride_byte, 0, MIPS)
0433 HANDLE_DW_AT(0x200d, MIPS_stride_elem, 0, MIPS)
0434 HANDLE_DW_AT(0x200e, MIPS_ptr_dopetype, 0, MIPS)
0435 HANDLE_DW_AT(0x200f, MIPS_allocatable_dopetype, 0, MIPS)
0436 HANDLE_DW_AT(0x2010, MIPS_assumed_shape_dopetype, 0, MIPS)
0437 
0438 // This one appears to have only been implemented by Open64 for
0439 // fortran and may conflict with other extensions.
0440 HANDLE_DW_AT(0x2011, MIPS_assumed_size, 0, MIPS)
0441 
0442 // HP  0x2001-0x2011 conflict with MIPS
0443 // HANDLE_DW_AT(0x2001, HP_unmodifiable, 0, HP)
0444 // HANDLE_DW_AT(0x2005, HP_prologue, 0, HP)
0445 // HANDLE_DW_AT(0x2008, HP_epilogue, 0, HP)
0446 // HANDLE_DW_AT(0x2010, HP_actuals_stmt_list, 0, HP)
0447 // HANDLE_DW_AT(0x2011, HP_proc_per_section, 0, HP)
0448 
0449 HANDLE_DW_AT(0x2012, HP_raw_data_ptr, 0, HP)
0450 HANDLE_DW_AT(0x2013, HP_pass_by_reference, 0, HP)
0451 HANDLE_DW_AT(0x2014, HP_opt_level, 0, HP)
0452 HANDLE_DW_AT(0x2015, HP_prof_version_id, 0, HP)
0453 HANDLE_DW_AT(0x2016, HP_opt_flags, 0, HP)
0454 HANDLE_DW_AT(0x2017, HP_cold_region_low_pc, 0, HP)
0455 HANDLE_DW_AT(0x2018, HP_cold_region_high_pc, 0, HP)
0456 HANDLE_DW_AT(0x2019, HP_all_variables_modifiable, 0, HP)
0457 HANDLE_DW_AT(0x201a, HP_linkage_name, 0, HP)
0458 HANDLE_DW_AT(0x201b, HP_prof_flags, 0, HP)
0459 HANDLE_DW_AT(0x201f, HP_unit_name, 0, HP)
0460 HANDLE_DW_AT(0x2020, HP_unit_size, 0, HP)
0461 HANDLE_DW_AT(0x2021, HP_widened_byte_size, 0, HP)
0462 HANDLE_DW_AT(0x2022, HP_definition_points, 0, HP)
0463 HANDLE_DW_AT(0x2023, HP_default_location, 0, HP)
0464 HANDLE_DW_AT(0x2029, HP_is_result_param, 0, HP)
0465 
0466 // COMPAQ/HP Conflicts with MIPS/HP  0x2001 - 0x2005
0467 // HANDLE_DW_AT(0x2001, CPQ_discontig_ranges, 0, COMPAQ)
0468 // HANDLE_DW_AT(0x2002, CPQ_semantic_events, 0, COMPAQ)
0469 // HANDLE_DW_AT(0x2003, CPQ_split_lifetimes_var, 0, COMPAQ)
0470 // HANDLE_DW_AT(0x2004, CPQ_split_lifetimes_rtn, 0, COMPAQ)
0471 // HANDLE_DW_AT(0x2005, CPQ_prologue_length, 0, COMPAQ)
0472 
0473 HANDLE_DW_AT(0x2026, DW_AT_INTEL_other_endian, 0, INTEL)
0474 
0475 // Green Hills.
0476 HANDLE_DW_AT(0x2083, GHS_rsm, 0, GHS)
0477 HANDLE_DW_AT(0x2085, GHS_frsm, 0, GHS)
0478 HANDLE_DW_AT(0x2086, GHS_frames, 0, GHS)
0479 HANDLE_DW_AT(0x2087, GHS_rso, 0, GHS)
0480 HANDLE_DW_AT(0x2092, GHS_subcpu, 0, GHS)
0481 HANDLE_DW_AT(0x2093, GHS_lbrace_line, 0, GHS)
0482 
0483 // GNU extensions
0484 HANDLE_DW_AT(0x2101, sf_names, 0, GNU)
0485 HANDLE_DW_AT(0x2102, src_info, 0, GNU)
0486 HANDLE_DW_AT(0x2103, mac_info, 0, GNU)
0487 HANDLE_DW_AT(0x2104, src_coords, 0, GNU)
0488 HANDLE_DW_AT(0x2105, body_begin, 0, GNU)
0489 HANDLE_DW_AT(0x2106, body_end, 0, GNU)
0490 HANDLE_DW_AT(0x2107, GNU_vector, 0, GNU)
0491 HANDLE_DW_AT(0x210f, GNU_odr_signature, 0, GNU)
0492 HANDLE_DW_AT(0x2110, GNU_template_name, 0, GNU)
0493 HANDLE_DW_AT(0x2111, GNU_call_site_value, 0, GNU)
0494 HANDLE_DW_AT(0x2112, GNU_call_site_data_value, 0, GNU)
0495 HANDLE_DW_AT(0x2113, GNU_call_site_target, 0, GNU)
0496 HANDLE_DW_AT(0x2114, GNU_call_site_target_clobbered, 0, GNU)
0497 HANDLE_DW_AT(0x2115, GNU_tail_call, 0, GNU)
0498 HANDLE_DW_AT(0x2116, GNU_all_tail_call_sites, 0, GNU)
0499 HANDLE_DW_AT(0x2117, GNU_all_call_sites, 0, GNU)
0500 HANDLE_DW_AT(0x2118, GNU_all_source_call_sites, 0, GNU)
0501 HANDLE_DW_AT(0x2119, GNU_macros, 0, GNU)
0502 HANDLE_DW_AT(0x211a, GNU_deleted, 0, GNU)
0503 // Extensions for Fission proposal.
0504 HANDLE_DW_AT(0x2130, GNU_dwo_name, 0, GNU)
0505 HANDLE_DW_AT(0x2131, GNU_dwo_id, 0, GNU)
0506 HANDLE_DW_AT(0x2132, GNU_ranges_base, 0, GNU)
0507 HANDLE_DW_AT(0x2133, GNU_addr_base, 0, GNU)
0508 HANDLE_DW_AT(0x2134, GNU_pubnames, 0, GNU)
0509 HANDLE_DW_AT(0x2135, GNU_pubtypes, 0, GNU)
0510 HANDLE_DW_AT(0x2136, GNU_discriminator, 0, GNU)
0511 HANDLE_DW_AT(0x2137, GNU_locviews, 0, GNU)
0512 HANDLE_DW_AT(0x2138, GNU_entry_view, 0, GNU)
0513 
0514 HANDLE_DW_AT(0x2201, SUN_template, 0, SUN)
0515 // Conflicting:
0516 // HANDLE_DW_AT(0x2201, VMS_rtnbeg_pd_address);
0517 
0518 HANDLE_DW_AT(0x2202, SUN_alignment, 0, SUN)
0519 HANDLE_DW_AT(0x2203, SUN_vtable, 0, SUN)
0520 HANDLE_DW_AT(0x2204, SUN_count_guarantee, 0, SUN)
0521 HANDLE_DW_AT(0x2205, SUN_command_line, 0, SUN)
0522 HANDLE_DW_AT(0x2206, SUN_vbase, 0, SUN)
0523 HANDLE_DW_AT(0x2207, SUN_compile_options, 0, SUN)
0524 HANDLE_DW_AT(0x2208, SUN_language, 0, SUN)
0525 HANDLE_DW_AT(0x2209, SUN_browser_file, 0, SUN)
0526 HANDLE_DW_AT(0x2210, SUN_vtable_abi, 0, SUN)
0527 HANDLE_DW_AT(0x2211, SUN_func_offsets, 0, SUN)
0528 HANDLE_DW_AT(0x2212, SUN_cf_kind, 0, SUN)
0529 HANDLE_DW_AT(0x2213, SUN_vtable_index, 0, SUN)
0530 HANDLE_DW_AT(0x2214, SUN_omp_tpriv_addr, 0, SUN)
0531 HANDLE_DW_AT(0x2215, SUN_omp_child_func, 0, SUN)
0532 HANDLE_DW_AT(0x2216, SUN_func_offset, 0, SUN)
0533 HANDLE_DW_AT(0x2217, SUN_memop_type_ref, 0, SUN)
0534 HANDLE_DW_AT(0x2218, SUN_profile_id, 0, SUN)
0535 HANDLE_DW_AT(0x2219, SUN_memop_signature, 0, SUN)
0536 
0537 HANDLE_DW_AT(0x2220, SUN_obj_dir, 0, SUN)
0538 HANDLE_DW_AT(0x2221, SUN_obj_file, 0, SUN)
0539 HANDLE_DW_AT(0x2222, SUN_original_name, 0, SUN)
0540 HANDLE_DW_AT(0x2223, SUN_hwcprof_signature, 0, SUN)
0541 HANDLE_DW_AT(0x2224, SUN_amd64_parmdump, 0, SUN)
0542 HANDLE_DW_AT(0x2225, SUN_part_link_name, 0, SUN)
0543 HANDLE_DW_AT(0x2226, SUN_link_name, 0, SUN)
0544 HANDLE_DW_AT(0x2227, SUN_pass_with_const, 0, SUN)
0545 HANDLE_DW_AT(0x2228, SUN_return_with_const, 0, SUN)
0546 HANDLE_DW_AT(0x2229, SUN_import_by_name, 0, SUN)
0547 HANDLE_DW_AT(0x222a, SUN_90_pointer, 0, SUN)
0548 HANDLE_DW_AT(0x222b, SUN_pass_by_ref, 0, SUN)
0549 HANDLE_DW_AT(0x222c, SUN_f90_allocatable, 0, SUN)
0550 HANDLE_DW_AT(0x222d, SUN_f90_assumed_shape_array, 0, SUN)
0551 HANDLE_DW_AT(0x222e, SUN_c_vla, 0, SUN)
0552 HANDLE_DW_AT(0x2230, SUN_return_value_ptr, 0, SUN)
0553 HANDLE_DW_AT(0x2231, SUN_dtor_start, 0, SUN)
0554 HANDLE_DW_AT(0x2232, SUN_dtor_length, 0, SUN)
0555 HANDLE_DW_AT(0x2233, SUN_dtor_state_initial, 0, SUN)
0556 HANDLE_DW_AT(0x2234, SUN_dtor_state_final, 0, SUN)
0557 HANDLE_DW_AT(0x2235, SUN_dtor_state_deltas, 0, SUN)
0558 HANDLE_DW_AT(0x2236, SUN_import_by_lname, 0, SUN)
0559 HANDLE_DW_AT(0x2237, SUN_f90_use_only, 0, SUN)
0560 HANDLE_DW_AT(0x2238, SUN_namelist_spec, 0, SUN)
0561 HANDLE_DW_AT(0x2239, SUN_is_omp_child_func, 0, SUN)
0562 HANDLE_DW_AT(0x223a, SUN_fortran_main_alias, 0, SUN)
0563 HANDLE_DW_AT(0x223b, SUN_fortran_based, 0, SUN)
0564 
0565 HANDLE_DW_AT(0x2300, ALTIUM_loclist, 0, ALTIUM)
0566 
0567 HANDLE_DW_AT(0x2301, use_GNAT_descriptive_type, 0, GNU)
0568 HANDLE_DW_AT(0x2302, GNAT_descriptive_type, 0, GNU)
0569 HANDLE_DW_AT(0x2303, GNU_numerator, 0, GNU)
0570 HANDLE_DW_AT(0x2304, GNU_denominator, 0, GNU)
0571 HANDLE_DW_AT(0x2305, GNU_bias, 0, GNU)
0572 
0573 HANDLE_DW_AT(0x2900, GO_kind, 0, GO)
0574 HANDLE_DW_AT(0x2901, GO_key, 0, GO)
0575 HANDLE_DW_AT(0x2902, GO_elem, 0, GO)
0576 HANDLE_DW_AT(0x2903, GO_embedded_field, 0, GO)
0577 HANDLE_DW_AT(0x2904, GO_runtime_type, 0, GO)
0578 
0579 HANDLE_DW_AT(0x3210, UPC_threads_scaled, 0, UPC)
0580 
0581 HANDLE_DW_AT(0x393e, IBM_wsa_addr, 0, IBM)
0582 HANDLE_DW_AT(0x393f, IBM_home_location, 0, IBM)
0583 HANDLE_DW_AT(0x3940, IBM_alt_srcview, 0, IBM)
0584 
0585 // PGI extensions (STMicroelectronics)
0586 HANDLE_DW_AT(0x3a00, PGI_lbase, 0, PGI)
0587 HANDLE_DW_AT(0x3a01, PGI_soffset, 0, PGI)
0588 HANDLE_DW_AT(0x3a02, PGI_lstride, 0, PGI)
0589 
0590 // Borland extensions.
0591 HANDLE_DW_AT(0x3b11, BORLAND_property_read, 0, BORLAND)
0592 HANDLE_DW_AT(0x3b12, BORLAND_property_write, 0, BORLAND)
0593 HANDLE_DW_AT(0x3b13, BORLAND_property_implements, 0, BORLAND)
0594 HANDLE_DW_AT(0x3b14, BORLAND_property_index, 0, BORLAND)
0595 HANDLE_DW_AT(0x3b15, BORLAND_property_default, 0, BORLAND)
0596 HANDLE_DW_AT(0x3b20, BORLAND_Delphi_unit, 0, BORLAND)
0597 HANDLE_DW_AT(0x3b21, BORLAND_Delphi_class, 0, BORLAND)
0598 HANDLE_DW_AT(0x3b22, BORLAND_Delphi_record, 0, BORLAND)
0599 HANDLE_DW_AT(0x3b23, BORLAND_Delphi_metaclass, 0, BORLAND)
0600 HANDLE_DW_AT(0x3b24, BORLAND_Delphi_constructor, 0, BORLAND)
0601 HANDLE_DW_AT(0x3b25, BORLAND_Delphi_destructor, 0, BORLAND)
0602 HANDLE_DW_AT(0x3b26, BORLAND_Delphi_anonymous_method, 0, BORLAND)
0603 HANDLE_DW_AT(0x3b27, BORLAND_Delphi_interface, 0, BORLAND)
0604 HANDLE_DW_AT(0x3b28, BORLAND_Delphi_ABI, 0, BORLAND)
0605 HANDLE_DW_AT(0x3b29, BORLAND_Delphi_return, 0, BORLAND)
0606 HANDLE_DW_AT(0x3b30, BORLAND_Delphi_frameptr, 0, BORLAND)
0607 HANDLE_DW_AT(0x3b31, BORLAND_closure, 0, BORLAND)
0608 // LLVM project extensions.
0609 HANDLE_DW_AT(0x3e00, LLVM_include_path, 0, LLVM)
0610 HANDLE_DW_AT(0x3e01, LLVM_config_macros, 0, LLVM)
0611 HANDLE_DW_AT(0x3e02, LLVM_sysroot, 0, LLVM)
0612 HANDLE_DW_AT(0x3e03, LLVM_tag_offset, 0, LLVM)
0613 HANDLE_DW_AT(0x3e04, LLVM_ptrauth_key, 0, LLVM)
0614 HANDLE_DW_AT(0x3e05, LLVM_ptrauth_address_discriminated, 0, LLVM)
0615 HANDLE_DW_AT(0x3e06, LLVM_ptrauth_extra_discriminator, 0, LLVM)
0616 HANDLE_DW_AT(0x3e07, LLVM_apinotes, 0, APPLE)
0617 HANDLE_DW_AT(0x3e08, LLVM_ptrauth_isa_pointer, 0, LLVM)
0618 HANDLE_DW_AT(0x3e09, LLVM_ptrauth_authenticates_null_values, 0, LLVM)
0619 HANDLE_DW_AT(0x3e0a, LLVM_ptrauth_authentication_mode, 0, LLVM)
0620 HANDLE_DW_AT(0x3e0b, LLVM_num_extra_inhabitants, 0, LLVM)
0621 HANDLE_DW_AT(0x3e0c, LLVM_stmt_sequence, 0, LLVM)
0622 
0623 // Apple extensions.
0624 
0625 HANDLE_DW_AT(0x3fe1, APPLE_optimized, 0, APPLE)
0626 HANDLE_DW_AT(0x3fe2, APPLE_flags, 0, APPLE)
0627 HANDLE_DW_AT(0x3fe3, APPLE_isa, 0, APPLE)
0628 HANDLE_DW_AT(0x3fe4, APPLE_block, 0, APPLE)
0629 HANDLE_DW_AT(0x3fe5, APPLE_major_runtime_vers, 0, APPLE)
0630 HANDLE_DW_AT(0x3fe6, APPLE_runtime_class, 0, APPLE)
0631 HANDLE_DW_AT(0x3fe7, APPLE_omit_frame_ptr, 0, APPLE)
0632 HANDLE_DW_AT(0x3fe8, APPLE_property_name, 0, APPLE)
0633 HANDLE_DW_AT(0x3fe9, APPLE_property_getter, 0, APPLE)
0634 HANDLE_DW_AT(0x3fea, APPLE_property_setter, 0, APPLE)
0635 HANDLE_DW_AT(0x3feb, APPLE_property_attribute, 0, APPLE)
0636 HANDLE_DW_AT(0x3fec, APPLE_objc_complete_type, 0, APPLE)
0637 HANDLE_DW_AT(0x3fed, APPLE_property, 0, APPLE)
0638 HANDLE_DW_AT(0x3fee, APPLE_objc_direct, 0, APPLE)
0639 HANDLE_DW_AT(0x3fef, APPLE_sdk, 0, APPLE)
0640 HANDLE_DW_AT(0x3ff0, APPLE_origin, 0, APPLE)
0641 
0642 // Attribute form encodings.
0643 HANDLE_DW_FORM(0x01, addr, 2, DWARF)
0644 HANDLE_DW_FORM(0x03, block2, 2, DWARF)
0645 HANDLE_DW_FORM(0x04, block4, 2, DWARF)
0646 HANDLE_DW_FORM(0x05, data2, 2, DWARF)
0647 HANDLE_DW_FORM(0x06, data4, 2, DWARF)
0648 HANDLE_DW_FORM(0x07, data8, 2, DWARF)
0649 HANDLE_DW_FORM(0x08, string, 2, DWARF)
0650 HANDLE_DW_FORM(0x09, block, 2, DWARF)
0651 HANDLE_DW_FORM(0x0a, block1, 2, DWARF)
0652 HANDLE_DW_FORM(0x0b, data1, 2, DWARF)
0653 HANDLE_DW_FORM(0x0c, flag, 2, DWARF)
0654 HANDLE_DW_FORM(0x0d, sdata, 2, DWARF)
0655 HANDLE_DW_FORM(0x0e, strp, 2, DWARF)
0656 HANDLE_DW_FORM(0x0f, udata, 2, DWARF)
0657 HANDLE_DW_FORM(0x10, ref_addr, 2, DWARF)
0658 HANDLE_DW_FORM(0x11, ref1, 2, DWARF)
0659 HANDLE_DW_FORM(0x12, ref2, 2, DWARF)
0660 HANDLE_DW_FORM(0x13, ref4, 2, DWARF)
0661 HANDLE_DW_FORM(0x14, ref8, 2, DWARF)
0662 HANDLE_DW_FORM(0x15, ref_udata, 2, DWARF)
0663 HANDLE_DW_FORM(0x16, indirect, 2, DWARF)
0664 // New in DWARF v4:
0665 HANDLE_DW_FORM(0x17, sec_offset, 4, DWARF)
0666 HANDLE_DW_FORM(0x18, exprloc, 4, DWARF)
0667 HANDLE_DW_FORM(0x19, flag_present, 4, DWARF)
0668 // This was defined out of sequence.
0669 HANDLE_DW_FORM(0x20, ref_sig8, 4, DWARF)
0670 // New in DWARF v5:
0671 HANDLE_DW_FORM(0x1a, strx, 5, DWARF)
0672 HANDLE_DW_FORM(0x1b, addrx, 5, DWARF)
0673 HANDLE_DW_FORM(0x1c, ref_sup4, 5, DWARF)
0674 HANDLE_DW_FORM(0x1d, strp_sup, 5, DWARF)
0675 HANDLE_DW_FORM(0x1e, data16, 5, DWARF)
0676 HANDLE_DW_FORM(0x1f, line_strp, 5, DWARF)
0677 HANDLE_DW_FORM(0x21, implicit_const, 5, DWARF)
0678 HANDLE_DW_FORM(0x22, loclistx, 5, DWARF)
0679 HANDLE_DW_FORM(0x23, rnglistx, 5, DWARF)
0680 HANDLE_DW_FORM(0x24, ref_sup8, 5, DWARF)
0681 HANDLE_DW_FORM(0x25, strx1, 5, DWARF)
0682 HANDLE_DW_FORM(0x26, strx2, 5, DWARF)
0683 HANDLE_DW_FORM(0x27, strx3, 5, DWARF)
0684 HANDLE_DW_FORM(0x28, strx4, 5, DWARF)
0685 HANDLE_DW_FORM(0x29, addrx1, 5, DWARF)
0686 HANDLE_DW_FORM(0x2a, addrx2, 5, DWARF)
0687 HANDLE_DW_FORM(0x2b, addrx3, 5, DWARF)
0688 HANDLE_DW_FORM(0x2c, addrx4, 5, DWARF)
0689 // Extensions for Fission proposal
0690 HANDLE_DW_FORM(0x1f01, GNU_addr_index, 0, GNU)
0691 HANDLE_DW_FORM(0x1f02, GNU_str_index, 0, GNU)
0692 // Alternate debug sections proposal (output of "dwz" tool).
0693 HANDLE_DW_FORM(0x1f20, GNU_ref_alt, 0, GNU)
0694 HANDLE_DW_FORM(0x1f21, GNU_strp_alt, 0, GNU)
0695 // LLVM addr+offset extension
0696 HANDLE_DW_FORM(0x2001, LLVM_addrx_offset, 0, LLVM)
0697 
0698 // DWARF Expression operators.
0699 HANDLE_DW_OP(0x03, addr, 1, 0, 2, DWARF)
0700 HANDLE_DW_OP(0x06, deref, 0, 1, 2, DWARF)
0701 HANDLE_DW_OP(0x08, const1u, 1, 0, 2, DWARF)
0702 HANDLE_DW_OP(0x09, const1s, 1, 0, 2, DWARF)
0703 HANDLE_DW_OP(0x0a, const2u, 1, 0, 2, DWARF)
0704 HANDLE_DW_OP(0x0b, const2s, 1, 0, 2, DWARF)
0705 HANDLE_DW_OP(0x0c, const4u, 1, 0, 2, DWARF)
0706 HANDLE_DW_OP(0x0d, const4s, 1, 0, 2, DWARF)
0707 HANDLE_DW_OP(0x0e, const8u, 1, 0, 2, DWARF)
0708 HANDLE_DW_OP(0x0f, const8s, 1, 0, 2, DWARF)
0709 HANDLE_DW_OP(0x10, constu, 1, 0, 2, DWARF)
0710 HANDLE_DW_OP(0x11, consts, 1, 0, 2, DWARF)
0711 HANDLE_DW_OP(0x12, dup, 0, 1, 2, DWARF)
0712 HANDLE_DW_OP(0x13, drop, 0, 1, 2, DWARF)
0713 HANDLE_DW_OP(0x14, over, 0, 1, 2, DWARF)
0714 HANDLE_DW_OP(0x15, pick, 1, -1, 2, DWARF)
0715 HANDLE_DW_OP(0x16, swap, 0, 2, 2, DWARF)
0716 HANDLE_DW_OP(0x17, rot, 0, 3, 2, DWARF)
0717 HANDLE_DW_OP(0x18, xderef, 0, 2, 2, DWARF)
0718 HANDLE_DW_OP(0x19, abs, 0, 1, 2, DWARF)
0719 HANDLE_DW_OP(0x1a, and, 0, 2, 2, DWARF)
0720 HANDLE_DW_OP(0x1b, div, 0, 2, 2, DWARF)
0721 HANDLE_DW_OP(0x1c, minus, 0, 2, 2, DWARF)
0722 HANDLE_DW_OP(0x1d, mod, 0, 2, 2, DWARF)
0723 HANDLE_DW_OP(0x1e, mul, 0, 2, 2, DWARF)
0724 HANDLE_DW_OP(0x1f, neg, 0, 1, 2, DWARF)
0725 HANDLE_DW_OP(0x20, not, 0, 1, 2, DWARF)
0726 HANDLE_DW_OP(0x21, or, 0, 2, 2, DWARF)
0727 HANDLE_DW_OP(0x22, plus, 0, 2, 2, DWARF)
0728 HANDLE_DW_OP(0x23, plus_uconst, 1, 1, 2, DWARF)
0729 HANDLE_DW_OP(0x24, shl, 0, 2, 2, DWARF)
0730 HANDLE_DW_OP(0x25, shr, 0, 2, 2, DWARF)
0731 HANDLE_DW_OP(0x26, shra, 0, 2, 2, DWARF)
0732 HANDLE_DW_OP(0x27, xor, 0, 2, 2, DWARF)
0733 HANDLE_DW_OP(0x28, bra, 1, 1, 2, DWARF)
0734 HANDLE_DW_OP(0x29, eq, 0, 2, 2, DWARF)
0735 HANDLE_DW_OP(0x2a, ge, 0, 2, 2, DWARF)
0736 HANDLE_DW_OP(0x2b, gt, 0, 2, 2, DWARF)
0737 HANDLE_DW_OP(0x2c, le, 0, 2, 2, DWARF)
0738 HANDLE_DW_OP(0x2d, lt, 0, 2, 2, DWARF)
0739 HANDLE_DW_OP(0x2e, ne, 0, 2, 2, DWARF)
0740 HANDLE_DW_OP(0x2f, skip, 1, 0, 2, DWARF)
0741 HANDLE_DW_OP(0x30, lit0, 0, 0, 2, DWARF)
0742 HANDLE_DW_OP(0x31, lit1, 0, 0, 2, DWARF)
0743 HANDLE_DW_OP(0x32, lit2, 0, 0, 2, DWARF)
0744 HANDLE_DW_OP(0x33, lit3, 0, 0, 2, DWARF)
0745 HANDLE_DW_OP(0x34, lit4, 0, 0, 2, DWARF)
0746 HANDLE_DW_OP(0x35, lit5, 0, 0, 2, DWARF)
0747 HANDLE_DW_OP(0x36, lit6, 0, 0, 2, DWARF)
0748 HANDLE_DW_OP(0x37, lit7, 0, 0, 2, DWARF)
0749 HANDLE_DW_OP(0x38, lit8, 0, 0, 2, DWARF)
0750 HANDLE_DW_OP(0x39, lit9, 0, 0, 2, DWARF)
0751 HANDLE_DW_OP(0x3a, lit10, 0, 0, 2, DWARF)
0752 HANDLE_DW_OP(0x3b, lit11, 0, 0, 2, DWARF)
0753 HANDLE_DW_OP(0x3c, lit12, 0, 0, 2, DWARF)
0754 HANDLE_DW_OP(0x3d, lit13, 0, 0, 2, DWARF)
0755 HANDLE_DW_OP(0x3e, lit14, 0, 0, 2, DWARF)
0756 HANDLE_DW_OP(0x3f, lit15, 0, 0, 2, DWARF)
0757 HANDLE_DW_OP(0x40, lit16, 0, 0, 2, DWARF)
0758 HANDLE_DW_OP(0x41, lit17, 0, 0, 2, DWARF)
0759 HANDLE_DW_OP(0x42, lit18, 0, 0, 2, DWARF)
0760 HANDLE_DW_OP(0x43, lit19, 0, 0, 2, DWARF)
0761 HANDLE_DW_OP(0x44, lit20, 0, 0, 2, DWARF)
0762 HANDLE_DW_OP(0x45, lit21, 0, 0, 2, DWARF)
0763 HANDLE_DW_OP(0x46, lit22, 0, 0, 2, DWARF)
0764 HANDLE_DW_OP(0x47, lit23, 0, 0, 2, DWARF)
0765 HANDLE_DW_OP(0x48, lit24, 0, 0, 2, DWARF)
0766 HANDLE_DW_OP(0x49, lit25, 0, 0, 2, DWARF)
0767 HANDLE_DW_OP(0x4a, lit26, 0, 0, 2, DWARF)
0768 HANDLE_DW_OP(0x4b, lit27, 0, 0, 2, DWARF)
0769 HANDLE_DW_OP(0x4c, lit28, 0, 0, 2, DWARF)
0770 HANDLE_DW_OP(0x4d, lit29, 0, 0, 2, DWARF)
0771 HANDLE_DW_OP(0x4e, lit30, 0, 0, 2, DWARF)
0772 HANDLE_DW_OP(0x4f, lit31, 0, 0, 2, DWARF)
0773 HANDLE_DW_OP(0x50, reg0, 0, 0, 2, DWARF)
0774 HANDLE_DW_OP(0x51, reg1, 0, 0, 2, DWARF)
0775 HANDLE_DW_OP(0x52, reg2, 0, 0, 2, DWARF)
0776 HANDLE_DW_OP(0x53, reg3, 0, 0, 2, DWARF)
0777 HANDLE_DW_OP(0x54, reg4, 0, 0, 2, DWARF)
0778 HANDLE_DW_OP(0x55, reg5, 0, 0, 2, DWARF)
0779 HANDLE_DW_OP(0x56, reg6, 0, 0, 2, DWARF)
0780 HANDLE_DW_OP(0x57, reg7, 0, 0, 2, DWARF)
0781 HANDLE_DW_OP(0x58, reg8, 0, 0, 2, DWARF)
0782 HANDLE_DW_OP(0x59, reg9, 0, 0, 2, DWARF)
0783 HANDLE_DW_OP(0x5a, reg10, 0, 0, 2, DWARF)
0784 HANDLE_DW_OP(0x5b, reg11, 0, 0, 2, DWARF)
0785 HANDLE_DW_OP(0x5c, reg12, 0, 0, 2, DWARF)
0786 HANDLE_DW_OP(0x5d, reg13, 0, 0, 2, DWARF)
0787 HANDLE_DW_OP(0x5e, reg14, 0, 0, 2, DWARF)
0788 HANDLE_DW_OP(0x5f, reg15, 0, 0, 2, DWARF)
0789 HANDLE_DW_OP(0x60, reg16, 0, 0, 2, DWARF)
0790 HANDLE_DW_OP(0x61, reg17, 0, 0, 2, DWARF)
0791 HANDLE_DW_OP(0x62, reg18, 0, 0, 2, DWARF)
0792 HANDLE_DW_OP(0x63, reg19, 0, 0, 2, DWARF)
0793 HANDLE_DW_OP(0x64, reg20, 0, 0, 2, DWARF)
0794 HANDLE_DW_OP(0x65, reg21, 0, 0, 2, DWARF)
0795 HANDLE_DW_OP(0x66, reg22, 0, 0, 2, DWARF)
0796 HANDLE_DW_OP(0x67, reg23, 0, 0, 2, DWARF)
0797 HANDLE_DW_OP(0x68, reg24, 0, 0, 2, DWARF)
0798 HANDLE_DW_OP(0x69, reg25, 0, 0, 2, DWARF)
0799 HANDLE_DW_OP(0x6a, reg26, 0, 0, 2, DWARF)
0800 HANDLE_DW_OP(0x6b, reg27, 0, 0, 2, DWARF)
0801 HANDLE_DW_OP(0x6c, reg28, 0, 0, 2, DWARF)
0802 HANDLE_DW_OP(0x6d, reg29, 0, 0, 2, DWARF)
0803 HANDLE_DW_OP(0x6e, reg30, 0, 0, 2, DWARF)
0804 HANDLE_DW_OP(0x6f, reg31, 0, 0, 2, DWARF)
0805 HANDLE_DW_OP(0x70, breg0, 1, 0, 2, DWARF)
0806 HANDLE_DW_OP(0x71, breg1, 1, 0, 2, DWARF)
0807 HANDLE_DW_OP(0x72, breg2, 1, 0, 2, DWARF)
0808 HANDLE_DW_OP(0x73, breg3, 1, 0, 2, DWARF)
0809 HANDLE_DW_OP(0x74, breg4, 1, 0, 2, DWARF)
0810 HANDLE_DW_OP(0x75, breg5, 1, 0, 2, DWARF)
0811 HANDLE_DW_OP(0x76, breg6, 1, 0, 2, DWARF)
0812 HANDLE_DW_OP(0x77, breg7, 1, 0, 2, DWARF)
0813 HANDLE_DW_OP(0x78, breg8, 1, 0, 2, DWARF)
0814 HANDLE_DW_OP(0x79, breg9, 1, 0, 2, DWARF)
0815 HANDLE_DW_OP(0x7a, breg10, 1, 0, 2, DWARF)
0816 HANDLE_DW_OP(0x7b, breg11, 1, 0, 2, DWARF)
0817 HANDLE_DW_OP(0x7c, breg12, 1, 0, 2, DWARF)
0818 HANDLE_DW_OP(0x7d, breg13, 1, 0, 2, DWARF)
0819 HANDLE_DW_OP(0x7e, breg14, 1, 0, 2, DWARF)
0820 HANDLE_DW_OP(0x7f, breg15, 1, 0, 2, DWARF)
0821 HANDLE_DW_OP(0x80, breg16, 1, 0, 2, DWARF)
0822 HANDLE_DW_OP(0x81, breg17, 1, 0, 2, DWARF)
0823 HANDLE_DW_OP(0x82, breg18, 1, 0, 2, DWARF)
0824 HANDLE_DW_OP(0x83, breg19, 1, 0, 2, DWARF)
0825 HANDLE_DW_OP(0x84, breg20, 1, 0, 2, DWARF)
0826 HANDLE_DW_OP(0x85, breg21, 1, 0, 2, DWARF)
0827 HANDLE_DW_OP(0x86, breg22, 1, 0, 2, DWARF)
0828 HANDLE_DW_OP(0x87, breg23, 1, 0, 2, DWARF)
0829 HANDLE_DW_OP(0x88, breg24, 1, 0, 2, DWARF)
0830 HANDLE_DW_OP(0x89, breg25, 1, 0, 2, DWARF)
0831 HANDLE_DW_OP(0x8a, breg26, 1, 0, 2, DWARF)
0832 HANDLE_DW_OP(0x8b, breg27, 1, 0, 2, DWARF)
0833 HANDLE_DW_OP(0x8c, breg28, 1, 0, 2, DWARF)
0834 HANDLE_DW_OP(0x8d, breg29, 1, 0, 2, DWARF)
0835 HANDLE_DW_OP(0x8e, breg30, 1, 0, 2, DWARF)
0836 HANDLE_DW_OP(0x8f, breg31, 1, 0, 2, DWARF)
0837 HANDLE_DW_OP(0x90, regx, 1, 0, 2, DWARF)
0838 HANDLE_DW_OP(0x91, fbreg, 1, 0, 2, DWARF)
0839 HANDLE_DW_OP(0x92, bregx, 2, 0, 2, DWARF)
0840 HANDLE_DW_OP(0x93, piece, 1, 0, 2, DWARF)
0841 HANDLE_DW_OP(0x94, deref_size, 1, 1, 2, DWARF)
0842 HANDLE_DW_OP(0x95, xderef_size, 1, 1, 2, DWARF)
0843 HANDLE_DW_OP(0x96, nop, 0, 0, 2, DWARF)
0844 // New in DWARF v3:
0845 HANDLE_DW_OP(0x97, push_object_address, 0, 0, 3, DWARF)
0846 HANDLE_DW_OP(0x98, call2, 1, 0, 3, DWARF)
0847 HANDLE_DW_OP(0x99, call4, 1, 0, 3, DWARF)
0848 HANDLE_DW_OP(0x9a, call_ref, 1, 1, 3, DWARF)
0849 HANDLE_DW_OP(0x9b, form_tls_address, 0, 1, 3, DWARF)
0850 HANDLE_DW_OP(0x9c, call_frame_cfa, 0, 0, 3, DWARF)
0851 HANDLE_DW_OP(0x9d, bit_piece, 2, 0, 3, DWARF)
0852 // New in DWARF v4:
0853 HANDLE_DW_OP(0x9e, implicit_value, 2, 0, 4, DWARF)
0854 HANDLE_DW_OP(0x9f, stack_value, 0, 1, 4, DWARF)
0855 // New in DWARF v5:
0856 HANDLE_DW_OP(0xa0, implicit_pointer, 2, 0, 5, DWARF)
0857 HANDLE_DW_OP(0xa1, addrx, 1, 0, 5, DWARF)
0858 HANDLE_DW_OP(0xa2, constx, 1, 0, 5, DWARF)
0859 HANDLE_DW_OP(0xa3, entry_value, 2, 0, 5, DWARF)
0860 HANDLE_DW_OP(0xa4, const_type, 3, 0, 5, DWARF)
0861 HANDLE_DW_OP(0xa5, regval_type, 2, 0, 5, DWARF)
0862 HANDLE_DW_OP(0xa6, deref_type, 2, 1, 5, DWARF)
0863 HANDLE_DW_OP(0xa7, xderef_type, 2, 2, 5, DWARF)
0864 HANDLE_DW_OP(0xa8, convert, 2, 1, 5, DWARF)
0865 HANDLE_DW_OP(0xa9, reinterpret, 1, 1, 5, DWARF)
0866 // Vendor extensions:
0867 // Extensions for GNU-style thread-local storage.
0868 HANDLE_DW_OP(0xe0, GNU_push_tls_address, 0, 0, 0, GNU)
0869 // Conflicting:
0870 // HANDLE_DW_OP(0xe0, HP_unknown, -1, -1, 0, HP)
0871 HANDLE_DW_OP(0xe1, HP_is_value, -1, -1, 0, HP)
0872 HANDLE_DW_OP(0xe2, HP_fltconst4, -1, -1, 0, HP)
0873 HANDLE_DW_OP(0xe3, HP_fltconst8, -1, -1, 0, HP)
0874 HANDLE_DW_OP(0xe4, HP_mod_range, -1, -1, 0, HP)
0875 HANDLE_DW_OP(0xe5, HP_unmod_range, -1, -1, 0, HP)
0876 HANDLE_DW_OP(0xe6, HP_tls, -1, -1, 0, HP)
0877 HANDLE_DW_OP(0xe8, INTEL_bit_piece, -1, -1, 0, INTEL)
0878 
0879 // Extensions for WebAssembly.
0880 HANDLE_DW_OP(0xed, WASM_location, -1, -1, 0, WASM)
0881 HANDLE_DW_OP(0xee, WASM_location_int, -1, -1, 0, WASM)
0882 // Historic and not implemented in LLVM.
0883 HANDLE_DW_OP(0xf0, APPLE_uninit, -1, -1, 0, APPLE)
0884 // The GNU entry value extension.
0885 HANDLE_DW_OP(0xf3, GNU_entry_value, 2, 0, 0, GNU)
0886 HANDLE_DW_OP(0xf8, PGI_omp_thread_num, -1, -1, 0, PGI)
0887 // Extensions for Fission proposal.
0888 HANDLE_DW_OP(0xfb, GNU_addr_index, 1, 0, 0, GNU)
0889 HANDLE_DW_OP(0xfc, GNU_const_index, 1, 0, 0, GNU)
0890 
0891 // DW_OP_LLVM_user has two operands:
0892 //   (1) An unsigned LEB128 "LLVM Vendor Extension Opcode".
0893 //   (2) Zero or more literal operands, the number and type of which are
0894 //       implied by the opcode (1).
0895 // DW_OP_LLVM_user acts as an extension multiplexer, opening up the encoding
0896 // space to accommodate an infinite number of extensions. This better reflects
0897 // the de-facto permanent allocation of extensions.
0898 HANDLE_DW_OP(0xe9, LLVM_user, -1, -1, 0, LLVM)
0899 // "LLVM Vendor Extension" operations under the DW_OP_LLVM_user encoding
0900 // scheme. This list is authoritative and exhaustive. Once an operation is
0901 // registered here it cannot be removed nor have its encoding changed. The
0902 // encoding space must skip zero (which is reserved) and have no gaps.
0903 //
0904 // The DW_OP_LLVM_user DW_OP_LLVM_nop operation has no effect on the
0905 // location stack or any of its values. It is defined as a placeholder for
0906 // testing purposes.
0907 HANDLE_DW_OP_LLVM_USEROP(0x0001, nop)
0908 
0909 // DWARF languages.
0910 HANDLE_DW_LANG(0x0001, C89, 0, 2, DWARF)
0911 HANDLE_DW_LANG(0x0002, C, 0, 2, DWARF)
0912 HANDLE_DW_LANG(0x0003, Ada83, 1, 2, DWARF)
0913 HANDLE_DW_LANG(0x0004, C_plus_plus, 0, 2, DWARF)
0914 HANDLE_DW_LANG(0x0005, Cobol74, 1, 2, DWARF)
0915 HANDLE_DW_LANG(0x0006, Cobol85, 1, 2, DWARF)
0916 HANDLE_DW_LANG(0x0007, Fortran77, 1, 2, DWARF)
0917 HANDLE_DW_LANG(0x0008, Fortran90, 1, 2, DWARF)
0918 HANDLE_DW_LANG(0x0009, Pascal83, 1, 2, DWARF)
0919 HANDLE_DW_LANG(0x000a, Modula2, 1, 2, DWARF)
0920 // New in DWARF v3:
0921 HANDLE_DW_LANG(0x000b, Java, 0, 3, DWARF)
0922 HANDLE_DW_LANG(0x000c, C99, 0, 3, DWARF)
0923 HANDLE_DW_LANG(0x000d, Ada95, 1, 3, DWARF)
0924 HANDLE_DW_LANG(0x000e, Fortran95, 1, 3, DWARF)
0925 HANDLE_DW_LANG(0x000f, PLI, 1, 3, DWARF)
0926 HANDLE_DW_LANG(0x0010, ObjC, 0, 3, DWARF)
0927 HANDLE_DW_LANG(0x0011, ObjC_plus_plus, 0, 3, DWARF)
0928 HANDLE_DW_LANG(0x0012, UPC, 0, 3, DWARF)
0929 HANDLE_DW_LANG(0x0013, D, 0, 3, DWARF)
0930 // New in DWARF v4:
0931 HANDLE_DW_LANG(0x0014, Python, 0, 4, DWARF)
0932 // New in DWARF v5:
0933 HANDLE_DW_LANG(0x0015, OpenCL, 0, 5, DWARF)
0934 HANDLE_DW_LANG(0x0016, Go, 0, 5, DWARF)
0935 HANDLE_DW_LANG(0x0017, Modula3, 1, 5, DWARF)
0936 HANDLE_DW_LANG(0x0018, Haskell, 0, 5, DWARF)
0937 HANDLE_DW_LANG(0x0019, C_plus_plus_03, 0, 5, DWARF)
0938 HANDLE_DW_LANG(0x001a, C_plus_plus_11, 0, 5, DWARF)
0939 HANDLE_DW_LANG(0x001b, OCaml, 0, 5, DWARF)
0940 HANDLE_DW_LANG(0x001c, Rust, 0, 5, DWARF)
0941 HANDLE_DW_LANG(0x001d, C11, 0, 5, DWARF)
0942 HANDLE_DW_LANG(0x001e, Swift, 0, 5, DWARF)
0943 HANDLE_DW_LANG(0x001f, Julia, 1, 5, DWARF)
0944 HANDLE_DW_LANG(0x0020, Dylan, 0, 5, DWARF)
0945 HANDLE_DW_LANG(0x0021, C_plus_plus_14, 0, 5, DWARF)
0946 HANDLE_DW_LANG(0x0022, Fortran03, 1, 5, DWARF)
0947 HANDLE_DW_LANG(0x0023, Fortran08, 1, 5, DWARF)
0948 HANDLE_DW_LANG(0x0024, RenderScript, 0, 5, DWARF)
0949 HANDLE_DW_LANG(0x0025, BLISS, 0, 5, DWARF)
0950 // New since DWARF v5:
0951 HANDLE_DW_LANG(0x0026, Kotlin, 0, 0, DWARF)
0952 HANDLE_DW_LANG(0x0027, Zig, 0, 0, DWARF)
0953 HANDLE_DW_LANG(0x0028, Crystal, 0, 0, DWARF)
0954 HANDLE_DW_LANG(0x002a, C_plus_plus_17, 0, 0, DWARF)
0955 HANDLE_DW_LANG(0x002b, C_plus_plus_20, 0, 0, DWARF)
0956 HANDLE_DW_LANG(0x002c, C17, 0, 0, DWARF)
0957 HANDLE_DW_LANG(0x002d, Fortran18, 0, 0, DWARF)
0958 HANDLE_DW_LANG(0x002e, Ada2005, 0, 0, DWARF)
0959 HANDLE_DW_LANG(0x002f, Ada2012, 0, 0, DWARF)
0960 HANDLE_DW_LANG(0x0030, HIP, 0, 0, DWARF)
0961 HANDLE_DW_LANG(0x0031, Assembly, 0, 0, DWARF)
0962 HANDLE_DW_LANG(0x0032, C_sharp, 0, 0, DWARF)
0963 HANDLE_DW_LANG(0x0033, Mojo, 0, 0, DWARF)
0964 HANDLE_DW_LANG(0x0034, GLSL, 0, 0, DWARF)
0965 HANDLE_DW_LANG(0x0035, GLSL_ES, 0, 0, DWARF)
0966 HANDLE_DW_LANG(0x0036, HLSL, 0, 0, DWARF)
0967 HANDLE_DW_LANG(0x0037, OpenCL_CPP, 0, 0, DWARF)
0968 HANDLE_DW_LANG(0x0038, CPP_for_OpenCL, 0, 0, DWARF)
0969 HANDLE_DW_LANG(0x0039, SYCL, 0, 0, DWARF)
0970 HANDLE_DW_LANG(0x003d, Metal, 0, 0, DWARF)
0971 HANDLE_DW_LANG(0x0040, Ruby, 0, 0, DWARF)
0972 HANDLE_DW_LANG(0x0041, Move, 0, 0, DWARF)
0973 HANDLE_DW_LANG(0x0042, Hylo, 0, 0, DWARF)
0974 
0975 // Vendor extensions:
0976 HANDLE_DW_LANG(0x8001, Mips_Assembler, std::nullopt, 0, MIPS)
0977 HANDLE_DW_LANG(0x8e57, GOOGLE_RenderScript, 0, 0, GOOGLE)
0978 HANDLE_DW_LANG(0xb000, BORLAND_Delphi, 0, 0, BORLAND)
0979 
0980 // Tentative DWARF 6 language codes. This list is subject to change.
0981 HANDLE_DW_LNAME(0x0001, Ada, "ISO Ada", 1) // YYYY
0982 HANDLE_DW_LNAME(0x0002, BLISS, "BLISS", 0)
0983 //     YYYYMM
0984 // K&R 000000
0985 // C89 198912
0986 // C99 199901
0987 // C11 201112
0988 // C17 201710
0989 // C23 202311
0990 HANDLE_DW_LNAME(0x0003, C, "C (K&R and ISO)", 0)
0991 //       YYYYMM
0992 // C++98 199711
0993 // C++03 200310
0994 // C++11 201103
0995 // C++14 201402
0996 // C++17 201703
0997 // C++20 202002
0998 HANDLE_DW_LNAME(0x0004, C_plus_plus, "ISO C++", 0)
0999 HANDLE_DW_LNAME(0x0005, Cobol, "ISO Cobol", 1) // YYYY
1000 HANDLE_DW_LNAME(0x0006, Crystal, "Crystal", 0)
1001 HANDLE_DW_LNAME(0x0007, D, "D", 0)
1002 HANDLE_DW_LNAME(0x0008, Dylan, "Dylan", 0)
1003 HANDLE_DW_LNAME(0x0009, Fortran, "ISO Fortran", 1) // YYYY
1004 HANDLE_DW_LNAME(0x000a, Go, "Go", 0)
1005 HANDLE_DW_LNAME(0x000b, Haskell, "Haskell", 0)
1006 HANDLE_DW_LNAME(0x000c, Java, "Java", 0)
1007 HANDLE_DW_LNAME(0x000d, Julia, "Julia", 1)
1008 HANDLE_DW_LNAME(0x000e, Kotlin, "Kotlin", 0)
1009 HANDLE_DW_LNAME(0x000f, Modula2, "Modula 2", 1)
1010 HANDLE_DW_LNAME(0x0010, Modula3, "Modula 3", 1)
1011 HANDLE_DW_LNAME(0x0011, ObjC, "Objective C", 0) // YYYYMM
1012 HANDLE_DW_LNAME(0x0012, ObjC_plus_plus, "Objective C++", 0) // YYYYMM
1013 HANDLE_DW_LNAME(0x0013, OCaml, "OCaml", 0)
1014 HANDLE_DW_LNAME(0x0014, OpenCL_C, "OpenCL C", 0)
1015 HANDLE_DW_LNAME(0x0015, Pascal, "ISO Pascal", 1) // YYYY
1016 HANDLE_DW_LNAME(0x0016, PLI, "ANSI PL/I", 1)
1017 HANDLE_DW_LNAME(0x0017, Python, "Python", 0)
1018 HANDLE_DW_LNAME(0x0018, RenderScript, "RenderScript Kernel Language", 0)
1019 HANDLE_DW_LNAME(0x0019, Rust, "Rust", 0)
1020 HANDLE_DW_LNAME(0x001a, Swift, "Swift", 0) // VVMM
1021 HANDLE_DW_LNAME(0x001b, UPC, "Unified Parallel C (UPC)", 0)
1022 HANDLE_DW_LNAME(0x001c, Zig, "Zig", 0)
1023 HANDLE_DW_LNAME(0x001d, Assembly, "Assembly", 0)
1024 // Conflict: HANDLE_DW_LNAME(0x001d, HIP, "HIP", 0)
1025 HANDLE_DW_LNAME(0x001e, C_sharp, "C#", 0)
1026 HANDLE_DW_LNAME(0x001f, Mojo, "Mojo", 0)
1027 HANDLE_DW_LNAME(0x0020, GLSL, "OpenGL Shading Language", 0) // VVMMPP
1028 HANDLE_DW_LNAME(0x0021, GLSL_ES, "OpenGL ES Shading Language", 0) // VVMMPP
1029 HANDLE_DW_LNAME(0x0022, HLSL, "High Level Shading Language", 0) // YYYY
1030 HANDLE_DW_LNAME(0x0023, OpenCL_CPP, "OpenCL C++", 0) // VVMM
1031 HANDLE_DW_LNAME(0x0024, CPP_for_OpenCL, "C++ for OpenCL", 0) // VVMM
1032 HANDLE_DW_LNAME(0x0025, SYCL, "SYCL", 0) // YYYYRR
1033 HANDLE_DW_LNAME(0x0026, Ruby, "Ruby", 0) // VVMMPP
1034 HANDLE_DW_LNAME(0x0027, Move, "Move", 0) // YYYYMM
1035 HANDLE_DW_LNAME(0x0028, Hylo, "Hylo", 0)
1036 HANDLE_DW_LNAME(0x002c, Metal, "Metal", 0) // VVMMPP
1037 
1038 // DWARF attribute type encodings.
1039 HANDLE_DW_ATE(0x01, address, 2, DWARF)
1040 HANDLE_DW_ATE(0x02, boolean, 2, DWARF)
1041 HANDLE_DW_ATE(0x03, complex_float, 2, DWARF)
1042 HANDLE_DW_ATE(0x04, float, 2, DWARF)
1043 HANDLE_DW_ATE(0x05, signed, 2, DWARF)
1044 HANDLE_DW_ATE(0x06, signed_char, 2, DWARF)
1045 HANDLE_DW_ATE(0x07, unsigned, 2, DWARF)
1046 HANDLE_DW_ATE(0x08, unsigned_char, 2, DWARF)
1047 // New in DWARF v3:
1048 HANDLE_DW_ATE(0x09, imaginary_float, 3, DWARF)
1049 HANDLE_DW_ATE(0x0a, packed_decimal, 3, DWARF)
1050 HANDLE_DW_ATE(0x0b, numeric_string, 3, DWARF)
1051 HANDLE_DW_ATE(0x0c, edited, 3, DWARF)
1052 HANDLE_DW_ATE(0x0d, signed_fixed, 3, DWARF)
1053 HANDLE_DW_ATE(0x0e, unsigned_fixed, 3, DWARF)
1054 HANDLE_DW_ATE(0x0f, decimal_float, 3, DWARF)
1055 // New in DWARF v4:
1056 HANDLE_DW_ATE(0x10, UTF, 4, DWARF)
1057 // New in DWARF v5:
1058 HANDLE_DW_ATE(0x11, UCS, 5, DWARF)
1059 HANDLE_DW_ATE(0x12, ASCII, 5, DWARF)
1060 
1061 // The version numbers of all vendor extensions >0x80 were guessed.
1062 // Conflicting:
1063 // HANDLE_DW_ATE(0x80, ALTIUM_fract, 2, ALTIUM) = DW_ATE_low_user
1064 // HANDLE_DW_ATE(0x81, ALTIUM_accum, 2, ALTIUM)
1065 
1066 HANDLE_DW_ATE(0x81, HP_complex_float, 2, HP)
1067 HANDLE_DW_ATE(0x82, HP_float128, 2, HP)
1068 HANDLE_DW_ATE(0x83, HP_complex_float128, 2, HP)
1069 HANDLE_DW_ATE(0x84, HP_floathpintel, 2, HP)
1070 HANDLE_DW_ATE(0x85, HP_imaginary_float90, 2, HP)
1071 HANDLE_DW_ATE(0x86, HP_imaginary_float128, 2, HP)
1072 // Conflicting:
1073 // HANDLE_DW_ATE(0x86, SUN_imaginary_float, 2, SUN)
1074 
1075 // DWARF attribute endianity
1076 HANDLE_DW_END(0x00, default)
1077 HANDLE_DW_END(0x01, big)
1078 HANDLE_DW_END(0x02, little)
1079 
1080 // DWARF virtuality codes.
1081 HANDLE_DW_VIRTUALITY(0x00, none)
1082 HANDLE_DW_VIRTUALITY(0x01, virtual)
1083 HANDLE_DW_VIRTUALITY(0x02, pure_virtual)
1084 
1085 // DWARF v5 Defaulted Member Encodings.
1086 HANDLE_DW_DEFAULTED(0x00, no)
1087 HANDLE_DW_DEFAULTED(0x01, in_class)
1088 HANDLE_DW_DEFAULTED(0x02, out_of_class)
1089 
1090 // DWARF calling convention codes.
1091 HANDLE_DW_CC(0x01, normal)
1092 HANDLE_DW_CC(0x02, program)
1093 HANDLE_DW_CC(0x03, nocall)
1094 // New in DWARF v5:
1095 HANDLE_DW_CC(0x04, pass_by_reference)
1096 HANDLE_DW_CC(0x05, pass_by_value)
1097 // Vendor extensions:
1098 HANDLE_DW_CC(0x40, GNU_renesas_sh)
1099 HANDLE_DW_CC(0x41, GNU_borland_fastcall_i386)
1100 HANDLE_DW_CC(0xb0, BORLAND_safecall)
1101 HANDLE_DW_CC(0xb1, BORLAND_stdcall)
1102 HANDLE_DW_CC(0xb2, BORLAND_pascal)
1103 HANDLE_DW_CC(0xb3, BORLAND_msfastcall)
1104 HANDLE_DW_CC(0xb4, BORLAND_msreturn)
1105 HANDLE_DW_CC(0xb5, BORLAND_thiscall)
1106 HANDLE_DW_CC(0xb6, BORLAND_fastcall)
1107 HANDLE_DW_CC(0xc0, LLVM_vectorcall)
1108 HANDLE_DW_CC(0xc1, LLVM_Win64)
1109 HANDLE_DW_CC(0xc2, LLVM_X86_64SysV)
1110 HANDLE_DW_CC(0xc3, LLVM_AAPCS)
1111 HANDLE_DW_CC(0xc4, LLVM_AAPCS_VFP)
1112 HANDLE_DW_CC(0xc5, LLVM_IntelOclBicc)
1113 HANDLE_DW_CC(0xc6, LLVM_SpirFunction)
1114 HANDLE_DW_CC(0xc7, LLVM_OpenCLKernel)
1115 HANDLE_DW_CC(0xc8, LLVM_Swift)
1116 HANDLE_DW_CC(0xc9, LLVM_PreserveMost)
1117 HANDLE_DW_CC(0xca, LLVM_PreserveAll)
1118 HANDLE_DW_CC(0xcb, LLVM_X86RegCall)
1119 HANDLE_DW_CC(0xcc, LLVM_M68kRTD)
1120 HANDLE_DW_CC(0xcd, LLVM_PreserveNone)
1121 HANDLE_DW_CC(0xce, LLVM_RISCVVectorCall)
1122 HANDLE_DW_CC(0xcf, LLVM_SwiftTail)
1123 // From GCC source code (include/dwarf2.h): This DW_CC_ value is not currently
1124 // generated by any toolchain.  It is used internally to GDB to indicate OpenCL
1125 // C functions that have been compiled with the IBM XL C for OpenCL compiler and
1126 // use a non-platform calling convention for passing OpenCL C vector types.
1127 HANDLE_DW_CC(0xff, GDB_IBM_OpenCL)
1128 
1129 // Line Number Extended Opcode Encodings
1130 HANDLE_DW_LNE(0x01, end_sequence)
1131 HANDLE_DW_LNE(0x02, set_address)
1132 HANDLE_DW_LNE(0x03, define_file)
1133 // New in DWARF v4:
1134 HANDLE_DW_LNE(0x04, set_discriminator)
1135 
1136 // Line Number Standard Opcode Encodings.
1137 HANDLE_DW_LNS(0x00, extended_op)
1138 HANDLE_DW_LNS(0x01, copy)
1139 HANDLE_DW_LNS(0x02, advance_pc)
1140 HANDLE_DW_LNS(0x03, advance_line)
1141 HANDLE_DW_LNS(0x04, set_file)
1142 HANDLE_DW_LNS(0x05, set_column)
1143 HANDLE_DW_LNS(0x06, negate_stmt)
1144 HANDLE_DW_LNS(0x07, set_basic_block)
1145 HANDLE_DW_LNS(0x08, const_add_pc)
1146 HANDLE_DW_LNS(0x09, fixed_advance_pc)
1147 // New in DWARF v3:
1148 HANDLE_DW_LNS(0x0a, set_prologue_end)
1149 HANDLE_DW_LNS(0x0b, set_epilogue_begin)
1150 HANDLE_DW_LNS(0x0c, set_isa)
1151 
1152 // DWARF v5 Line number header entry format.
1153 HANDLE_DW_LNCT(0x01, path)
1154 HANDLE_DW_LNCT(0x02, directory_index)
1155 HANDLE_DW_LNCT(0x03, timestamp)
1156 HANDLE_DW_LNCT(0x04, size)
1157 HANDLE_DW_LNCT(0x05, MD5)
1158 // A vendor extension until http://dwarfstd.org/ShowIssue.php?issue=180201.1 is
1159 // accepted and incorporated into the next DWARF standard.
1160 HANDLE_DW_LNCT(0x2001, LLVM_source)
1161 
1162 // DWARF v5 Macro information.
1163 HANDLE_DW_MACRO(0x01, define)
1164 HANDLE_DW_MACRO(0x02, undef)
1165 HANDLE_DW_MACRO(0x03, start_file)
1166 HANDLE_DW_MACRO(0x04, end_file)
1167 HANDLE_DW_MACRO(0x05, define_strp)
1168 HANDLE_DW_MACRO(0x06, undef_strp)
1169 HANDLE_DW_MACRO(0x07, import)
1170 HANDLE_DW_MACRO(0x08, define_sup)
1171 HANDLE_DW_MACRO(0x09, undef_sup)
1172 HANDLE_DW_MACRO(0x0a, import_sup)
1173 HANDLE_DW_MACRO(0x0b, define_strx)
1174 HANDLE_DW_MACRO(0x0c, undef_strx)
1175 
1176 // GNU .debug_macro extension.
1177 HANDLE_DW_MACRO_GNU(0x01, define)
1178 HANDLE_DW_MACRO_GNU(0x02, undef)
1179 HANDLE_DW_MACRO_GNU(0x03, start_file)
1180 HANDLE_DW_MACRO_GNU(0x04, end_file)
1181 HANDLE_DW_MACRO_GNU(0x05, define_indirect)
1182 HANDLE_DW_MACRO_GNU(0x06, undef_indirect)
1183 HANDLE_DW_MACRO_GNU(0x07, transparent_include)
1184 HANDLE_DW_MACRO_GNU(0x08, define_indirect_alt)
1185 HANDLE_DW_MACRO_GNU(0x09, undef_indirect_alt)
1186 HANDLE_DW_MACRO_GNU(0x0a, transparent_include_alt)
1187 
1188 // DWARF v5 Macro header flags.
1189 HANDLE_MACRO_FLAG(0x01, OFFSET_SIZE)
1190 HANDLE_MACRO_FLAG(0x02, DEBUG_LINE_OFFSET)
1191 HANDLE_MACRO_FLAG(0x04, OPCODE_OPERANDS_TABLE)
1192 
1193 // DWARF v5 Range List Entry encoding values.
1194 HANDLE_DW_RLE(0x00, end_of_list)
1195 HANDLE_DW_RLE(0x01, base_addressx)
1196 HANDLE_DW_RLE(0x02, startx_endx)
1197 HANDLE_DW_RLE(0x03, startx_length)
1198 HANDLE_DW_RLE(0x04, offset_pair)
1199 HANDLE_DW_RLE(0x05, base_address)
1200 HANDLE_DW_RLE(0x06, start_end)
1201 HANDLE_DW_RLE(0x07, start_length)
1202 
1203 // DWARF v5 Loc List Entry encoding values.
1204 HANDLE_DW_LLE(0x00, end_of_list)
1205 HANDLE_DW_LLE(0x01, base_addressx)
1206 HANDLE_DW_LLE(0x02, startx_endx)
1207 HANDLE_DW_LLE(0x03, startx_length)
1208 HANDLE_DW_LLE(0x04, offset_pair)
1209 HANDLE_DW_LLE(0x05, default_location)
1210 HANDLE_DW_LLE(0x06, base_address)
1211 HANDLE_DW_LLE(0x07, start_end)
1212 HANDLE_DW_LLE(0x08, start_length)
1213 
1214 // Call frame instruction encodings.
1215 HANDLE_DW_CFA(0x00, nop)
1216 HANDLE_DW_CFA(0x40, advance_loc)
1217 HANDLE_DW_CFA(0x80, offset)
1218 HANDLE_DW_CFA(0xc0, restore)
1219 HANDLE_DW_CFA(0x01, set_loc)
1220 HANDLE_DW_CFA(0x02, advance_loc1)
1221 HANDLE_DW_CFA(0x03, advance_loc2)
1222 HANDLE_DW_CFA(0x04, advance_loc4)
1223 HANDLE_DW_CFA(0x05, offset_extended)
1224 HANDLE_DW_CFA(0x06, restore_extended)
1225 HANDLE_DW_CFA(0x07, undefined)
1226 HANDLE_DW_CFA(0x08, same_value)
1227 HANDLE_DW_CFA(0x09, register)
1228 HANDLE_DW_CFA(0x0a, remember_state)
1229 HANDLE_DW_CFA(0x0b, restore_state)
1230 HANDLE_DW_CFA(0x0c, def_cfa)
1231 HANDLE_DW_CFA(0x0d, def_cfa_register)
1232 HANDLE_DW_CFA(0x0e, def_cfa_offset)
1233 // New in DWARF v3:
1234 HANDLE_DW_CFA(0x0f, def_cfa_expression)
1235 HANDLE_DW_CFA(0x10, expression)
1236 HANDLE_DW_CFA(0x11, offset_extended_sf)
1237 HANDLE_DW_CFA(0x12, def_cfa_sf)
1238 HANDLE_DW_CFA(0x13, def_cfa_offset_sf)
1239 HANDLE_DW_CFA(0x14, val_offset)
1240 HANDLE_DW_CFA(0x15, val_offset_sf)
1241 HANDLE_DW_CFA(0x16, val_expression)
1242 // Vendor extensions:
1243 HANDLE_DW_CFA_PRED(0x1d, MIPS_advance_loc8, SELECT_MIPS64)
1244 HANDLE_DW_CFA_PRED(0x2d, GNU_window_save, SELECT_SPARC)
1245 HANDLE_DW_CFA_PRED(0x2c, AARCH64_negate_ra_state_with_pc, SELECT_AARCH64)
1246 HANDLE_DW_CFA_PRED(0x2d, AARCH64_negate_ra_state, SELECT_AARCH64)
1247 HANDLE_DW_CFA_PRED(0x2e, GNU_args_size, SELECT_X86)
1248 // Heterogeneous Debugging Extension defined at
1249 // https://llvm.org/docs/AMDGPUDwarfExtensionsForHeterogeneousDebugging.html#cfa-definition-instructions
1250 HANDLE_DW_CFA(0x30, LLVM_def_aspace_cfa)
1251 HANDLE_DW_CFA(0x31, LLVM_def_aspace_cfa_sf)
1252 
1253 // Apple Objective-C Property Attributes.
1254 // Keep this list in sync with clang's DeclObjCCommon.h
1255 // ObjCPropertyAttribute::Kind!
1256 HANDLE_DW_APPLE_PROPERTY(0x01, readonly)
1257 HANDLE_DW_APPLE_PROPERTY(0x02, getter)
1258 HANDLE_DW_APPLE_PROPERTY(0x04, assign)
1259 HANDLE_DW_APPLE_PROPERTY(0x08, readwrite)
1260 HANDLE_DW_APPLE_PROPERTY(0x10, retain)
1261 HANDLE_DW_APPLE_PROPERTY(0x20, copy)
1262 HANDLE_DW_APPLE_PROPERTY(0x40, nonatomic)
1263 HANDLE_DW_APPLE_PROPERTY(0x80, setter)
1264 HANDLE_DW_APPLE_PROPERTY(0x100, atomic)
1265 HANDLE_DW_APPLE_PROPERTY(0x200, weak)
1266 HANDLE_DW_APPLE_PROPERTY(0x400, strong)
1267 HANDLE_DW_APPLE_PROPERTY(0x800, unsafe_unretained)
1268 HANDLE_DW_APPLE_PROPERTY(0x1000, nullability)
1269 HANDLE_DW_APPLE_PROPERTY(0x2000, null_resettable)
1270 HANDLE_DW_APPLE_PROPERTY(0x4000, class)
1271 
1272 // DWARF v5 Unit Types.
1273 HANDLE_DW_UT(0x01, compile)
1274 HANDLE_DW_UT(0x02, type)
1275 HANDLE_DW_UT(0x03, partial)
1276 HANDLE_DW_UT(0x04, skeleton)
1277 HANDLE_DW_UT(0x05, split_compile)
1278 HANDLE_DW_UT(0x06, split_type)
1279 
1280 // DWARF section types. (enum name, ELF name, ELF DWO name, cmdline name,
1281 // option) Note that these IDs don't mean anything.
1282 // TODO: Add Mach-O and COFF names.
1283 // Official DWARF sections.
1284 HANDLE_DWARF_SECTION(DebugAbbrev, ".debug_abbrev", "debug-abbrev", BoolOption)
1285 HANDLE_DWARF_SECTION(DebugAddr, ".debug_addr", "debug-addr", BoolOption)
1286 HANDLE_DWARF_SECTION(DebugAranges, ".debug_aranges", "debug-aranges",
1287                      BoolOption)
1288 HANDLE_DWARF_SECTION(DebugInfo, ".debug_info", "debug-info", OffsetOption)
1289 HANDLE_DWARF_SECTION(DebugTypes, ".debug_types", "debug-types", OffsetOption)
1290 HANDLE_DWARF_SECTION(DebugLine, ".debug_line", "debug-line", OffsetOption)
1291 HANDLE_DWARF_SECTION(DebugLineStr, ".debug_line_str", "debug-line-str",
1292                      BoolOption)
1293 HANDLE_DWARF_SECTION(DebugLoc, ".debug_loc", "debug-loc", OffsetOption)
1294 HANDLE_DWARF_SECTION(DebugLoclists, ".debug_loclists", "debug-loclists",
1295                      OffsetOption)
1296 HANDLE_DWARF_SECTION(DebugFrame, ".debug_frame", "debug-frame", OffsetOption)
1297 HANDLE_DWARF_SECTION(DebugMacro, ".debug_macro", "debug-macro", BoolOption)
1298 HANDLE_DWARF_SECTION(DebugNames, ".debug_names", "debug-names", BoolOption)
1299 HANDLE_DWARF_SECTION(DebugPubnames, ".debug_pubnames", "debug-pubnames",
1300                      BoolOption)
1301 HANDLE_DWARF_SECTION(DebugPubtypes, ".debug_pubtypes", "debug-pubtypes",
1302                      BoolOption)
1303 HANDLE_DWARF_SECTION(DebugGnuPubnames, ".debug_gnu_pubnames",
1304                      "debug-gnu-pubnames", BoolOption)
1305 HANDLE_DWARF_SECTION(DebugGnuPubtypes, ".debug_gnu_pubtypes",
1306                      "debug-gnu-pubtypes", BoolOption)
1307 HANDLE_DWARF_SECTION(DebugRanges, ".debug_ranges", "debug-ranges", BoolOption)
1308 HANDLE_DWARF_SECTION(DebugRnglists, ".debug_rnglists", "debug-rnglists",
1309                      BoolOption)
1310 HANDLE_DWARF_SECTION(DebugStr, ".debug_str", "debug-str", BoolOption)
1311 HANDLE_DWARF_SECTION(DebugStrOffsets, ".debug_str_offsets", "debug-str-offsets",
1312                      BoolOption)
1313 HANDLE_DWARF_SECTION(DebugCUIndex, ".debug_cu_index", "debug-cu-index",
1314                      BoolOption)
1315 HANDLE_DWARF_SECTION(DebugTUIndex, ".debug_tu_index", "debug-tu-index",
1316                      BoolOption)
1317 // Vendor extensions.
1318 HANDLE_DWARF_SECTION(AppleNames, ".apple_names", "apple-names", BoolOption)
1319 HANDLE_DWARF_SECTION(AppleTypes, ".apple_types", "apple-types", BoolOption)
1320 HANDLE_DWARF_SECTION(AppleNamespaces, ".apple_namespaces", "apple-namespaces",
1321                      BoolOption)
1322 HANDLE_DWARF_SECTION(AppleObjC, ".apple_objc", "apple-objc", BoolOption)
1323 HANDLE_DWARF_SECTION(GdbIndex, ".gdb_index", "gdb-index", BoolOption)
1324 
1325 HANDLE_DW_IDX(0x01, compile_unit)
1326 HANDLE_DW_IDX(0x02, type_unit)
1327 HANDLE_DW_IDX(0x03, die_offset)
1328 HANDLE_DW_IDX(0x04, parent)
1329 HANDLE_DW_IDX(0x05, type_hash)
1330 HANDLE_DW_IDX(0x2000, GNU_internal)
1331 HANDLE_DW_IDX(0x2001, GNU_external)
1332 
1333 // DWARF package file section identifiers.
1334 // DWARFv5, section 7.3.5.3, table 7.1.
1335 HANDLE_DW_SECT(1, INFO)
1336 HANDLE_DW_SECT(3, ABBREV)
1337 HANDLE_DW_SECT(4, LINE)
1338 HANDLE_DW_SECT(5, LOCLISTS)
1339 HANDLE_DW_SECT(6, STR_OFFSETS)
1340 HANDLE_DW_SECT(7, MACRO)
1341 HANDLE_DW_SECT(8, RNGLISTS)
1342 
1343 #undef HANDLE_DW_TAG
1344 #undef HANDLE_DW_AT
1345 #undef HANDLE_DW_FORM
1346 #undef HANDLE_DW_OP
1347 #undef HANDLE_DW_OP_LLVM_USEROP
1348 #undef HANDLE_DW_LANG
1349 #undef HANDLE_DW_LNAME
1350 #undef HANDLE_DW_ATE
1351 #undef HANDLE_DW_VIRTUALITY
1352 #undef HANDLE_DW_DEFAULTED
1353 #undef HANDLE_DW_CC
1354 #undef HANDLE_DW_LNS
1355 #undef HANDLE_DW_LNE
1356 #undef HANDLE_DW_LNCT
1357 #undef HANDLE_DW_MACRO
1358 #undef HANDLE_DW_MACRO_GNU
1359 #undef HANDLE_MACRO_FLAG
1360 #undef HANDLE_DW_RLE
1361 #undef HANDLE_DW_LLE
1362 #undef HANDLE_DW_CFA
1363 #undef HANDLE_DW_CFA_PRED
1364 #undef HANDLE_DW_APPLE_PROPERTY
1365 #undef HANDLE_DW_UT
1366 #undef HANDLE_DWARF_SECTION
1367 #undef HANDLE_DW_IDX
1368 #undef HANDLE_DW_END
1369 #undef HANDLE_DW_SECT