diff options
Diffstat (limited to 'llvm/include/llvm/Support/Dwarf.h')
| -rw-r--r-- | llvm/include/llvm/Support/Dwarf.h | 84 |
1 files changed, 63 insertions, 21 deletions
diff --git a/llvm/include/llvm/Support/Dwarf.h b/llvm/include/llvm/Support/Dwarf.h index 6e32ffdb7ff..ccd6134e118 100644 --- a/llvm/include/llvm/Support/Dwarf.h +++ b/llvm/include/llvm/Support/Dwarf.h @@ -191,14 +191,31 @@ enum Attribute : uint16_t { DW_AT_rank = 0x71, DW_AT_str_offsets_base = 0x72, DW_AT_addr_base = 0x73, - DW_AT_ranges_base = 0x74, - DW_AT_dwo_id = 0x75, + DW_AT_rnglists_base = 0x74, + DW_AT_dwo_id = 0x75, ///< Retracted from DWARF 5. DW_AT_dwo_name = 0x76, DW_AT_reference = 0x77, DW_AT_rvalue_reference = 0x78, DW_AT_macros = 0x79, + DW_AT_call_all_calls = 0x7a, + DW_AT_call_all_source_calls = 0x7b, + DW_AT_call_all_tail_calls = 0x7c, + DW_AT_call_return_pc = 0x7d, + DW_AT_call_value = 0x7e, + DW_AT_call_origin = 0x7f, + DW_AT_call_parameter = 0x80, + DW_AT_call_pc = 0x81, + DW_AT_call_tail_call = 0x82, + DW_AT_call_target = 0x83, + DW_AT_call_target_clobbered = 0x84, + DW_AT_call_data_location = 0x85, + DW_AT_call_data_value = 0x86, DW_AT_noreturn = 0x87, DW_AT_alignment = 0x88, + DW_AT_export_symbols = 0x89, + DW_AT_deleted = 0x8a, + DW_AT_defaulted = 0x8b, + DW_AT_loclists_base = 0x8c, DW_AT_lo_user = 0x2000, DW_AT_hi_user = 0x3fff, @@ -311,7 +328,18 @@ enum Form : uint16_t { DW_FORM_sec_offset = 0x17, DW_FORM_exprloc = 0x18, DW_FORM_flag_present = 0x19, + + // New in DWARF v5. + DW_FORM_strx = 0x1a, + DW_FORM_addrx = 0x1b, + DW_FORM_ref_sup = 0x1c, + DW_FORM_strp_sup = 0x1d, + DW_FORM_data16 = 0x1e, + DW_FORM_line_strp = 0x1f, DW_FORM_ref_sig8 = 0x20, + DW_FORM_implicit_const = 0x21, + DW_FORM_loclistx = 0x22, + DW_FORM_rnglistx = 0x23, DW_FORM_lo_user = 0x1f00, // Extensions for Fission proposal @@ -375,6 +403,12 @@ enum VirtualityAttribute { DW_VIRTUALITY_max = 0x02 }; +enum DefaultedMemberAttribute { +#define HANDLE_DW_DEFAULTED(ID, NAME) DW_DEFAULTED_##NAME = ID, +#include "llvm/Support/Dwarf.def" + DW_DEFAULTED_max = 0x02 +}; + enum SourceLanguage { #define HANDLE_DW_LANG(ID, NAME) DW_LANG_##NAME = ID, #include "llvm/Support/Dwarf.def" @@ -445,6 +479,13 @@ enum LineNumberExtendedOps { DW_LNE_hi_user = 0xff }; +enum LinerNumberEntryFormat { +#define HANDLE_DW_LNCT(ID, NAME) DW_DEFAULTED_##NAME = ID, +#include "llvm/Support/Dwarf.def" + DW_LNCT_lo_user = 0x2000, + DW_LNCT_hi_user = 0x3fff, +}; + enum MacinfoRecordType { // Macinfo Type Encodings DW_MACINFO_define = 0x01, @@ -454,24 +495,21 @@ enum MacinfoRecordType { DW_MACINFO_vendor_ext = 0xff }; +/// DWARF v5 macro information entry type encodings. enum MacroEntryType { - // Macro Information Entry Type Encodings - DW_MACRO_define = 0x01, - DW_MACRO_undef = 0x02, - DW_MACRO_start_file = 0x03, - DW_MACRO_end_file = 0x04, - DW_MACRO_define_indirect = 0x05, - DW_MACRO_undef_indirect = 0x06, - DW_MACRO_transparent_include = 0x07, - DW_MACRO_define_indirect_sup = 0x08, - DW_MACRO_undef_indirect_sup = 0x09, - DW_MACRO_transparent_include_sup = 0x0a, - DW_MACRO_define_indirectx = 0x0b, - DW_MACRO_undef_indirectx = 0x0c, +#define HANDLE_DW_MACRO(ID, NAME) DW_DEFAULTED_##NAME = ID, +#include "llvm/Support/Dwarf.def" DW_MACRO_lo_user = 0xe0, DW_MACRO_hi_user = 0xff }; +/// DWARF v5 range list entry encoding values. +enum RangeListEntries { +#define HANDLE_DW_RLE(ID, NAME) DW_DEFAULTED_##NAME = ID, +#include "llvm/Support/Dwarf.def" +}; + + enum CallFrameInfo { // Call frame instruction encodings DW_CFA_extended = 0x00, @@ -532,13 +570,17 @@ enum Constants { DW_EH_PE_indirect = 0x80 }; -// Constants for debug_loc.dwo in the DWARF5 Split Debug Info Proposal +/// Constants for location lists in DWARF v5. enum LocationListEntry : unsigned char { - DW_LLE_end_of_list_entry, - DW_LLE_base_address_selection_entry, - DW_LLE_start_end_entry, - DW_LLE_start_length_entry, - DW_LLE_offset_pair_entry + DW_LLE_end_of_list = 0x00, + DW_LLE_base_addressx = 0x01, + DW_LLE_startx_endx = 0x02, + DW_LLE_startx_length = 0x03, + DW_LLE_offset_pair = 0x04, + DW_LLE_default_location = 0x05, + DW_LLE_base_address = 0x06, + DW_LLE_start_end = 0x07, + DW_LLE_start_length = 0x08 }; /// Constants for the DW_APPLE_PROPERTY_attributes attribute. |

