diff --git a/llvm/include/llvm/ObjectYAML/DWARFYAML.h b/llvm/include/llvm/ObjectYAML/DWARFYAML.h index 08b02691ffc17..2f355b2a5b59a 100644 --- a/llvm/include/llvm/ObjectYAML/DWARFYAML.h +++ b/llvm/include/llvm/ObjectYAML/DWARFYAML.h @@ -144,8 +144,7 @@ struct LineTableOpcode { }; struct LineTable { - dwarf::DwarfFormat Format; - uint64_t Length; + InitialLength Length; uint16_t Version; uint64_t PrologueLength; uint8_t MinInstLength; diff --git a/llvm/lib/ObjectYAML/DWARFEmitter.cpp b/llvm/lib/ObjectYAML/DWARFEmitter.cpp index 9ab6aa5aeafc0..b496e2a09386b 100644 --- a/llvm/lib/ObjectYAML/DWARFEmitter.cpp +++ b/llvm/lib/ObjectYAML/DWARFEmitter.cpp @@ -262,9 +262,8 @@ static void emitFileEntry(raw_ostream &OS, const DWARFYAML::File &File) { Error DWARFYAML::emitDebugLine(raw_ostream &OS, const DWARFYAML::Data &DI) { for (const auto &LineTable : DI.DebugLines) { - writeInitialLength(LineTable.Format, LineTable.Length, OS, - DI.IsLittleEndian); - uint64_t SizeOfPrologueLength = LineTable.Format == dwarf::DWARF64 ? 8 : 4; + writeInitialLength(LineTable.Length, OS, DI.IsLittleEndian); + uint64_t SizeOfPrologueLength = LineTable.Length.isDWARF64() ? 8 : 4; writeInteger((uint16_t)LineTable.Version, OS, DI.IsLittleEndian); writeVariableSizedInteger(LineTable.PrologueLength, SizeOfPrologueLength, OS, DI.IsLittleEndian); diff --git a/llvm/lib/ObjectYAML/DWARFYAML.cpp b/llvm/lib/ObjectYAML/DWARFYAML.cpp index 8298047d8be93..257db357ca733 100644 --- a/llvm/lib/ObjectYAML/DWARFYAML.cpp +++ b/llvm/lib/ObjectYAML/DWARFYAML.cpp @@ -175,7 +175,6 @@ void MappingTraits::mapping( void MappingTraits::mapping( IO &IO, DWARFYAML::LineTable &LineTable) { - IO.mapOptional("Format", LineTable.Format, dwarf::DWARF32); IO.mapRequired("Length", LineTable.Length); IO.mapRequired("Version", LineTable.Version); IO.mapRequired("PrologueLength", LineTable.PrologueLength); diff --git a/llvm/test/ObjectYAML/MachO/DWARF-debug_info.yaml b/llvm/test/ObjectYAML/MachO/DWARF-debug_info.yaml index af997b010b2d2..95f3eae597c27 100644 --- a/llvm/test/ObjectYAML/MachO/DWARF-debug_info.yaml +++ b/llvm/test/ObjectYAML/MachO/DWARF-debug_info.yaml @@ -453,7 +453,8 @@ DWARF: - AbbrCode: 0x00000000 Values: debug_line: - - Length: 65 + - Length: + TotalLength: 65 Version: 2 PrologueLength: 36 MinInstLength: 1 diff --git a/llvm/test/ObjectYAML/MachO/DWARF-debug_line.yaml b/llvm/test/ObjectYAML/MachO/DWARF-debug_line.yaml index d24fe7c8a4b86..5d17deb2fac25 100644 --- a/llvm/test/ObjectYAML/MachO/DWARF-debug_line.yaml +++ b/llvm/test/ObjectYAML/MachO/DWARF-debug_line.yaml @@ -492,7 +492,8 @@ DWARF: - AbbrCode: 0x00000000 Values: debug_line: - - Length: 65 + - Length: + TotalLength: 65 Version: 2 PrologueLength: 36 MinInstLength: 1 @@ -533,7 +534,8 @@ DWARF: ... #CHECK: debug_line: -#CHECK: - Length: 65 +#CHECK: - Length: +#CHECK: TotalLength: 65 #CHECK: Version: 2 #CHECK: PrologueLength: 36 #CHECK: MinInstLength: 1 diff --git a/llvm/test/ObjectYAML/MachO/DWARF5-debug_info.yaml b/llvm/test/ObjectYAML/MachO/DWARF5-debug_info.yaml index 9e8865f3c08ef..574796cbebda1 100644 --- a/llvm/test/ObjectYAML/MachO/DWARF5-debug_info.yaml +++ b/llvm/test/ObjectYAML/MachO/DWARF5-debug_info.yaml @@ -454,7 +454,8 @@ DWARF: - AbbrCode: 0x00000000 Values: debug_line: - - Length: 65 + - Length: + TotalLength: 65 Version: 2 PrologueLength: 36 MinInstLength: 1 diff --git a/llvm/test/tools/yaml2obj/ELF/DWARF/debug-line.yaml b/llvm/test/tools/yaml2obj/ELF/DWARF/debug-line.yaml index 020fadc57b34e..22d5584351ac7 100644 --- a/llvm/test/tools/yaml2obj/ELF/DWARF/debug-line.yaml +++ b/llvm/test/tools/yaml2obj/ELF/DWARF/debug-line.yaml @@ -72,7 +72,8 @@ FileHeader: Machine: EM_X86_64 DWARF: debug_line: - - Length: 0x70 + - Length: + TotalLength: 0x70 Version: 2 PrologueLength: 50 MinInstLength: 1 @@ -206,7 +207,8 @@ Sections: Size: 0x10 DWARF: debug_line: - - Length: 0x70 + - Length: + TotalLength: 0x70 Version: 2 PrologueLength: 50 MinInstLength: 1 @@ -236,7 +238,8 @@ Sections: Content: "00" DWARF: debug_line: - - Length: 0x70 + - Length: + TotalLength: 0x70 Version: 2 PrologueLength: 50 MinInstLength: 1 @@ -305,7 +308,8 @@ Sections: Type: SHT_STRTAB DWARF: debug_line: - - Length: 0x70 + - Length: + TotalLength: 0x70 Version: 2 PrologueLength: 50 MinInstLength: 1 diff --git a/llvm/tools/obj2yaml/dwarf2yaml.cpp b/llvm/tools/obj2yaml/dwarf2yaml.cpp index 88f53c18f30b1..12cb0c294d4ad 100644 --- a/llvm/tools/obj2yaml/dwarf2yaml.cpp +++ b/llvm/tools/obj2yaml/dwarf2yaml.cpp @@ -7,7 +7,6 @@ //===----------------------------------------------------------------------===// #include "Error.h" -#include "llvm/BinaryFormat/Dwarf.h" #include "llvm/DebugInfo/DWARF/DWARFContext.h" #include "llvm/DebugInfo/DWARF/DWARFDebugArangeSet.h" #include "llvm/DebugInfo/DWARF/DWARFDebugRangeList.h" @@ -297,17 +296,9 @@ void dumpDebugLines(DWARFContext &DCtx, DWARFYAML::Data &Y) { DataExtractor LineData(DCtx.getDWARFObj().getLineSection().Data, DCtx.isLittleEndian(), CU->getAddressByteSize()); uint64_t Offset = *StmtOffset; - uint64_t LengthOrDWARF64Prefix = LineData.getU32(&Offset); - if (LengthOrDWARF64Prefix == dwarf::DW_LENGTH_DWARF64) { - DebugLines.Format = dwarf::DWARF64; - DebugLines.Length = LineData.getU64(&Offset); - } else { - DebugLines.Format = dwarf::DWARF32; - DebugLines.Length = LengthOrDWARF64Prefix; - } - uint64_t LineTableLength = DebugLines.Length; - uint64_t SizeOfPrologueLength = - DebugLines.Format == dwarf::DWARF64 ? 8 : 4; + dumpInitialLength(LineData, Offset, DebugLines.Length); + uint64_t LineTableLength = DebugLines.Length.getLength(); + uint64_t SizeOfPrologueLength = DebugLines.Length.isDWARF64() ? 8 : 4; DebugLines.Version = LineData.getU16(&Offset); DebugLines.PrologueLength = LineData.getUnsigned(&Offset, SizeOfPrologueLength);