diff --git a/llvm/test/ObjectYAML/MachO/DWARF-debug_info.yaml b/llvm/test/ObjectYAML/MachO/DWARF-debug_info.yaml --- a/llvm/test/ObjectYAML/MachO/DWARF-debug_info.yaml +++ b/llvm/test/ObjectYAML/MachO/DWARF-debug_info.yaml @@ -699,6 +699,12 @@ # MULTI-TABLES-NEXT: Attributes: # MULTI-TABLES-NEXT: - Attribute: DW_AT_low_pc # MULTI-TABLES-NEXT: Form: DW_FORM_data4 +# MULTI-TABLES-NEXT: - Code: 0x0000000000000002 +# MULTI-TABLES-NEXT: Tag: DW_TAG_compile_unit +# MULTI-TABLES-NEXT: Children: DW_CHILDREN_no +# MULTI-TABLES-NEXT: Attributes: +# MULTI-TABLES-NEXT: - Attribute: DW_AT_low_pc +# MULTI-TABLES-NEXT: Form: DW_FORM_data4 # MULTI-TABLES-NEXT: - ID: 2 # MULTI-TABLES-NEXT: Table: # MULTI-TABLES-NEXT: - Code: 0x0000000000000001 @@ -707,6 +713,7 @@ # MULTI-TABLES-NEXT: Attributes: # MULTI-TABLES-NEXT: - Attribute: DW_AT_low_pc # MULTI-TABLES-NEXT: Form: DW_FORM_udata +# MULTI-TABLES-NEXT: - ID: 3 # MULTI-TABLES-NEXT: debug_info: # MULTI-TABLES-NEXT: - Length: 0x000000000000000C # MULTI-TABLES-NEXT: Version: 4 @@ -738,7 +745,7 @@ # MULTI-TABLES-NEXT: - Length: 0x000000000000000B # MULTI-TABLES-NEXT: Version: 4 # MULTI-TABLES-NEXT: AbbrevTableID: 2 -# MULTI-TABLES-NEXT: AbbrOffset: 0x0000000000000010 +# MULTI-TABLES-NEXT: AbbrOffset: 0x0000000000000017 # MULTI-TABLES-NEXT: AddrSize: 8 # MULTI-TABLES-NEXT: Entries: # MULTI-TABLES-NEXT: - AbbrCode: 0x00000001 @@ -772,7 +779,7 @@ - sectname: __debug_abbrev segname: __DWARF addr: 0x00 - size: 24 + size: 32 offset: 528 align: 0 reloff: 0x00000000 @@ -810,6 +817,12 @@ Attributes: - Attribute: DW_AT_low_pc Form: DW_FORM_data4 + - Code: 2 + Tag: DW_TAG_compile_unit + Children: DW_CHILDREN_no + Attributes: + - Attribute: DW_AT_low_pc + Form: DW_FORM_data4 - ID: 1 Table: - Code: 1 @@ -818,31 +831,28 @@ Attributes: - Attribute: DW_AT_low_pc Form: DW_FORM_udata + - ID: 3 debug_info: - Version: 4 AbbrevTableID: 2 - AbbrOffset: 8 Entries: - AbbrCode: 1 Values: - Value: 0x1234 - Version: 4 AbbrevTableID: 2 - AbbrOffset: 8 Entries: - AbbrCode: 1 Values: - Value: 0x4321 - Version: 4 AbbrevTableID: 0 - AbbrOffset: 0 Entries: - AbbrCode: 1 Values: - Value: 0x5678 - Version: 4 AbbrevTableID: 1 - AbbrOffset: 16 Entries: - AbbrCode: 1 Values: diff --git a/llvm/tools/obj2yaml/dwarf2yaml.cpp b/llvm/tools/obj2yaml/dwarf2yaml.cpp --- a/llvm/tools/obj2yaml/dwarf2yaml.cpp +++ b/llvm/tools/obj2yaml/dwarf2yaml.cpp @@ -26,6 +26,7 @@ uint64_t AbbrevTableID = 0; for (auto AbbrvDeclSet : *AbbrevSetPtr) { Y.DebugAbbrev.emplace_back(); + Y.DebugAbbrev.back().ID = AbbrevTableID++; for (auto AbbrvDecl : AbbrvDeclSet.second) { DWARFYAML::Abbrev Abbrv; Abbrv.Code = AbbrvDecl.getCode(); @@ -40,7 +41,6 @@ AttAbrv.Value = Attribute.getImplicitConstValue(); Abbrv.Attributes.push_back(AttAbrv); } - Y.DebugAbbrev.back().ID = AbbrevTableID++; Y.DebugAbbrev.back().Table.push_back(Abbrv); } }