From 613c4a87ba9bb39d1927402f4dd4c1ef1f9a02f7 Mon Sep 17 00:00:00 2001 From: Xing GUO Date: Fri, 12 Jun 2020 21:10:14 +0800 Subject: [PATCH] [ObjectYAML][DWARF] Add one helper function `writeInitialLength()`. NFC. --- llvm/lib/ObjectYAML/DWARFEmitter.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/llvm/lib/ObjectYAML/DWARFEmitter.cpp b/llvm/lib/ObjectYAML/DWARFEmitter.cpp index 2761c6b..b496e2a 100644 --- a/llvm/lib/ObjectYAML/DWARFEmitter.cpp +++ b/llvm/lib/ObjectYAML/DWARFEmitter.cpp @@ -70,6 +70,15 @@ static void writeInitialLength(const DWARFYAML::InitialLength &Length, writeInteger((uint64_t)Length.TotalLength64, OS, IsLittleEndian); } +static void writeInitialLength(const dwarf::DwarfFormat Format, + const uint64_t Length, raw_ostream &OS, + bool IsLittleEndian) { + bool IsDWARF64 = Format == dwarf::DWARF64; + if (IsDWARF64) + writeVariableSizedInteger(dwarf::DW_LENGTH_DWARF64, 4, OS, IsLittleEndian); + writeVariableSizedInteger(Length, IsDWARF64 ? 8 : 4, OS, IsLittleEndian); +} + Error DWARFYAML::emitDebugStr(raw_ostream &OS, const DWARFYAML::Data &DI) { for (auto Str : DI.DebugStrings) { OS.write(Str.data(), Str.size()); @@ -100,11 +109,7 @@ Error DWARFYAML::emitDebugAbbrev(raw_ostream &OS, const DWARFYAML::Data &DI) { Error DWARFYAML::emitDebugAranges(raw_ostream &OS, const DWARFYAML::Data &DI) { for (auto Range : DI.ARanges) { auto HeaderStart = OS.tell(); - if (Range.Format == dwarf::DWARF64) { - writeInteger((uint32_t)dwarf::DW_LENGTH_DWARF64, OS, DI.IsLittleEndian); - writeInteger((uint64_t)Range.Length, OS, DI.IsLittleEndian); - } else - writeInteger((uint32_t)Range.Length, OS, DI.IsLittleEndian); + writeInitialLength(Range.Format, Range.Length, OS, DI.IsLittleEndian); writeInteger((uint16_t)Range.Version, OS, DI.IsLittleEndian); if (Range.Format == dwarf::DWARF64) writeInteger((uint64_t)Range.CuOffset, OS, DI.IsLittleEndian); -- 2.7.4