diff options
Diffstat (limited to 'llvm/include/llvm/BinaryFormat/Dwarf.def')
-rw-r--r-- | llvm/include/llvm/BinaryFormat/Dwarf.def | 94 |
1 files changed, 63 insertions, 31 deletions
diff --git a/llvm/include/llvm/BinaryFormat/Dwarf.def b/llvm/include/llvm/BinaryFormat/Dwarf.def index 3faf3be65032..f0337ef4fb54 100644 --- a/llvm/include/llvm/BinaryFormat/Dwarf.def +++ b/llvm/include/llvm/BinaryFormat/Dwarf.def @@ -17,11 +17,12 @@ defined HANDLE_DW_VIRTUALITY || defined HANDLE_DW_DEFAULTED || \ defined HANDLE_DW_CC || defined HANDLE_DW_LNS || defined HANDLE_DW_LNE || \ defined HANDLE_DW_LNCT || defined HANDLE_DW_MACRO || \ + defined HANDLE_MACRO_FLAG || \ defined HANDLE_DW_RLE || defined HANDLE_DW_LLE || \ (defined HANDLE_DW_CFA && defined HANDLE_DW_CFA_PRED) || \ defined HANDLE_DW_APPLE_PROPERTY || defined HANDLE_DW_UT || \ defined HANDLE_DWARF_SECTION || defined HANDLE_DW_IDX || \ - defined HANDLE_DW_END) + defined HANDLE_DW_END || defined HANDLE_DW_SECT) #error "Missing macro definition of HANDLE_DW*" #endif @@ -87,6 +88,10 @@ #define HANDLE_DW_MACRO(ID, NAME) #endif +#ifndef HANDLE_MACRO_FLAG +#define HANDLE_MACRO_FLAG(ID, NAME) +#endif + #ifndef HANDLE_DW_RLE #define HANDLE_DW_RLE(ID, NAME) #endif @@ -112,7 +117,7 @@ #endif #ifndef HANDLE_DWARF_SECTION -#define HANDLE_DWARF_SECTION(ENUM_NAME, ELF_NAME, CMDLINE_NAME) +#define HANDLE_DWARF_SECTION(ENUM_NAME, ELF_NAME, CMDLINE_NAME, OPTION) #endif #ifndef HANDLE_DW_IDX @@ -123,6 +128,10 @@ #define HANDLE_DW_END(ID, NAME) #endif +#ifndef HANDLE_DW_SECT +#define HANDLE_DW_SECT(ID, NAME) +#endif + HANDLE_DW_TAG(0x0000, null, 2, DWARF, DW_KIND_NONE) HANDLE_DW_TAG(0x0001, array_type, 2, DWARF, DW_KIND_TYPE) HANDLE_DW_TAG(0x0002, class_type, 2, DWARF, DW_KIND_TYPE) @@ -407,7 +416,11 @@ HANDLE_DW_AT(0x3e00, LLVM_include_path, 0, LLVM) HANDLE_DW_AT(0x3e01, LLVM_config_macros, 0, LLVM) HANDLE_DW_AT(0x3e02, LLVM_sysroot, 0, LLVM) HANDLE_DW_AT(0x3e03, LLVM_tag_offset, 0, LLVM) +// The missing numbers here are reserved for ptrauth support. +HANDLE_DW_AT(0x3e07, LLVM_apinotes, 0, APPLE) + // Apple extensions. + HANDLE_DW_AT(0x3fe1, APPLE_optimized, 0, APPLE) HANDLE_DW_AT(0x3fe2, APPLE_flags, 0, APPLE) HANDLE_DW_AT(0x3fe3, APPLE_isa, 0, APPLE) @@ -422,6 +435,7 @@ HANDLE_DW_AT(0x3feb, APPLE_property_attribute, 0, APPLE) HANDLE_DW_AT(0x3fec, APPLE_objc_complete_type, 0, APPLE) HANDLE_DW_AT(0x3fed, APPLE_property, 0, APPLE) HANDLE_DW_AT(0x3fee, APPLE_objc_direct, 0, APPLE) +HANDLE_DW_AT(0x3fef, APPLE_sdk, 0, APPLE) // Attribute form encodings. HANDLE_DW_FORM(0x01, addr, 2, DWARF) @@ -650,6 +664,7 @@ HANDLE_DW_OP(0xa9, reinterpret, 5, DWARF) HANDLE_DW_OP(0xe0, GNU_push_tls_address, 0, GNU) // Extensions for WebAssembly. HANDLE_DW_OP(0xed, WASM_location, 0, WASM) +HANDLE_DW_OP(0xee, WASM_location_int, 0, WASM) // The GNU entry value extension. HANDLE_DW_OP(0xf3, GNU_entry_value, 0, GNU) // Extensions for Fission proposal. @@ -822,6 +837,11 @@ HANDLE_DW_MACRO(0x0a, import_sup) HANDLE_DW_MACRO(0x0b, define_strx) HANDLE_DW_MACRO(0x0c, undef_strx) +// DWARF v5 Macro header flags. +HANDLE_MACRO_FLAG(0x01, OFFSET_SIZE) +HANDLE_MACRO_FLAG(0x02, DEBUG_LINE_OFFSET) +HANDLE_MACRO_FLAG(0x04, OPCODE_OPERANDS_TABLE) + // DWARF v5 Range List Entry encoding values. HANDLE_DW_RLE(0x00, end_of_list) HANDLE_DW_RLE(0x01, base_addressx) @@ -878,7 +898,8 @@ HANDLE_DW_CFA_PRED(0x2d, AARCH64_negate_ra_state, SELECT_AARCH64) HANDLE_DW_CFA_PRED(0x2e, GNU_args_size, SELECT_X86) // Apple Objective-C Property Attributes. -// Keep this list in sync with clang's DeclSpec.h ObjCPropertyAttributeKind! +// Keep this list in sync with clang's DeclObjCCommon.h +// ObjCPropertyAttribute::Kind! HANDLE_DW_APPLE_PROPERTY(0x01, readonly) HANDLE_DW_APPLE_PROPERTY(0x02, getter) HANDLE_DW_APPLE_PROPERTY(0x04, assign) @@ -903,38 +924,38 @@ HANDLE_DW_UT(0x04, skeleton) HANDLE_DW_UT(0x05, split_compile) HANDLE_DW_UT(0x06, split_type) -// DWARF section types. (enum name, ELF name, ELF DWO name, cmdline name) +// DWARF section types. (enum name, ELF name, ELF DWO name, cmdline name, option) // Note that these IDs don't mean anything. // TODO: Add Mach-O and COFF names. // Official DWARF sections. -HANDLE_DWARF_SECTION(DebugAbbrev, ".debug_abbrev", "debug-abbrev") -HANDLE_DWARF_SECTION(DebugAddr, ".debug_addr", "debug-addr") -HANDLE_DWARF_SECTION(DebugAranges, ".debug_aranges", "debug-aranges") -HANDLE_DWARF_SECTION(DebugInfo, ".debug_info", "debug-info") -HANDLE_DWARF_SECTION(DebugTypes, ".debug_types", "debug-types") -HANDLE_DWARF_SECTION(DebugLine, ".debug_line", "debug-line") -HANDLE_DWARF_SECTION(DebugLineStr, ".debug_line_str", "debug-line-str") -HANDLE_DWARF_SECTION(DebugLoc, ".debug_loc", "debug-loc") -HANDLE_DWARF_SECTION(DebugLoclists, ".debug_loclists", "debug-loclists") -HANDLE_DWARF_SECTION(DebugFrame, ".debug_frame", "debug-frame") -HANDLE_DWARF_SECTION(DebugMacro, ".debug_macro", "debug-macro") -HANDLE_DWARF_SECTION(DebugNames, ".debug_names", "debug-names") -HANDLE_DWARF_SECTION(DebugPubnames, ".debug_pubnames", "debug-pubnames") -HANDLE_DWARF_SECTION(DebugPubtypes, ".debug_pubtypes", "debug-pubtypes") -HANDLE_DWARF_SECTION(DebugGnuPubnames, ".debug_gnu_pubnames", "debug-gnu-pubnames") -HANDLE_DWARF_SECTION(DebugGnuPubtypes, ".debug_gnu_pubtypes", "debug-gnu-pubtypes") -HANDLE_DWARF_SECTION(DebugRanges, ".debug_ranges", "debug-ranges") -HANDLE_DWARF_SECTION(DebugRnglists, ".debug_rnglists", "debug-rnglists") -HANDLE_DWARF_SECTION(DebugStr, ".debug_str", "debug-str") -HANDLE_DWARF_SECTION(DebugStrOffsets, ".debug_str_offsets", "debug-str-offsets") -HANDLE_DWARF_SECTION(DebugCUIndex, ".debug_cu_index", "debug-cu-index") -HANDLE_DWARF_SECTION(DebugTUIndex, ".debug_tu_index", "debug-tu-index") +HANDLE_DWARF_SECTION(DebugAbbrev, ".debug_abbrev", "debug-abbrev", BoolOption) +HANDLE_DWARF_SECTION(DebugAddr, ".debug_addr", "debug-addr", BoolOption) +HANDLE_DWARF_SECTION(DebugAranges, ".debug_aranges", "debug-aranges", BoolOption) +HANDLE_DWARF_SECTION(DebugInfo, ".debug_info", "debug-info", OffsetOption) +HANDLE_DWARF_SECTION(DebugTypes, ".debug_types", "debug-types", OffsetOption) +HANDLE_DWARF_SECTION(DebugLine, ".debug_line", "debug-line", OffsetOption) +HANDLE_DWARF_SECTION(DebugLineStr, ".debug_line_str", "debug-line-str", BoolOption) +HANDLE_DWARF_SECTION(DebugLoc, ".debug_loc", "debug-loc", OffsetOption) +HANDLE_DWARF_SECTION(DebugLoclists, ".debug_loclists", "debug-loclists", OffsetOption) +HANDLE_DWARF_SECTION(DebugFrame, ".debug_frame", "debug-frame", OffsetOption) +HANDLE_DWARF_SECTION(DebugMacro, ".debug_macro", "debug-macro", BoolOption) +HANDLE_DWARF_SECTION(DebugNames, ".debug_names", "debug-names", BoolOption) +HANDLE_DWARF_SECTION(DebugPubnames, ".debug_pubnames", "debug-pubnames", BoolOption) +HANDLE_DWARF_SECTION(DebugPubtypes, ".debug_pubtypes", "debug-pubtypes", BoolOption) +HANDLE_DWARF_SECTION(DebugGnuPubnames, ".debug_gnu_pubnames", "debug-gnu-pubnames", BoolOption) +HANDLE_DWARF_SECTION(DebugGnuPubtypes, ".debug_gnu_pubtypes", "debug-gnu-pubtypes", BoolOption) +HANDLE_DWARF_SECTION(DebugRanges, ".debug_ranges", "debug-ranges", BoolOption) +HANDLE_DWARF_SECTION(DebugRnglists, ".debug_rnglists", "debug-rnglists", BoolOption) +HANDLE_DWARF_SECTION(DebugStr, ".debug_str", "debug-str", BoolOption) +HANDLE_DWARF_SECTION(DebugStrOffsets, ".debug_str_offsets", "debug-str-offsets", BoolOption) +HANDLE_DWARF_SECTION(DebugCUIndex, ".debug_cu_index", "debug-cu-index", BoolOption) +HANDLE_DWARF_SECTION(DebugTUIndex, ".debug_tu_index", "debug-tu-index", BoolOption) // Vendor extensions. -HANDLE_DWARF_SECTION(AppleNames, ".apple_names", "apple-names") -HANDLE_DWARF_SECTION(AppleTypes, ".apple_types", "apple-types") -HANDLE_DWARF_SECTION(AppleNamespaces, ".apple_namespaces", "apple-namespaces") -HANDLE_DWARF_SECTION(AppleObjC, ".apple_objc", "apple-objc") -HANDLE_DWARF_SECTION(GdbIndex, ".gdb_index", "gdb-index") +HANDLE_DWARF_SECTION(AppleNames, ".apple_names", "apple-names", BoolOption) +HANDLE_DWARF_SECTION(AppleTypes, ".apple_types", "apple-types", BoolOption) +HANDLE_DWARF_SECTION(AppleNamespaces, ".apple_namespaces", "apple-namespaces", BoolOption) +HANDLE_DWARF_SECTION(AppleObjC, ".apple_objc", "apple-objc", BoolOption) +HANDLE_DWARF_SECTION(GdbIndex, ".gdb_index", "gdb-index", BoolOption) HANDLE_DW_IDX(0x01, compile_unit) HANDLE_DW_IDX(0x02, type_unit) @@ -942,6 +963,15 @@ HANDLE_DW_IDX(0x03, die_offset) HANDLE_DW_IDX(0x04, parent) HANDLE_DW_IDX(0x05, type_hash) +// DWARF package file section identifiers. +// DWARFv5, section 7.3.5.3, table 7.1. +HANDLE_DW_SECT(1, INFO) +HANDLE_DW_SECT(3, ABBREV) +HANDLE_DW_SECT(4, LINE) +HANDLE_DW_SECT(5, LOCLISTS) +HANDLE_DW_SECT(6, STR_OFFSETS) +HANDLE_DW_SECT(7, MACRO) +HANDLE_DW_SECT(8, RNGLISTS) #undef HANDLE_DW_TAG #undef HANDLE_DW_AT @@ -956,6 +986,7 @@ HANDLE_DW_IDX(0x05, type_hash) #undef HANDLE_DW_LNE #undef HANDLE_DW_LNCT #undef HANDLE_DW_MACRO +#undef HANDLE_MACRO_FLAG #undef HANDLE_DW_RLE #undef HANDLE_DW_LLE #undef HANDLE_DW_CFA @@ -965,3 +996,4 @@ HANDLE_DW_IDX(0x05, type_hash) #undef HANDLE_DWARF_SECTION #undef HANDLE_DW_IDX #undef HANDLE_DW_END +#undef HANDLE_DW_SECT |