[llvm] 613c4a8 - [ObjectYAML][DWARF] Add one helper function `writeInitialLength()`. NFC.
Xing GUO via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 12 06:07:18 PDT 2020
Author: Xing GUO
Date: 2020-06-12T21:10:58+08:00
New Revision: 613c4a87ba9bb39d1927402f4dd4c1ef1f9a02f7
URL: https://github.com/llvm/llvm-project/commit/613c4a87ba9bb39d1927402f4dd4c1ef1f9a02f7
DIFF: https://github.com/llvm/llvm-project/commit/613c4a87ba9bb39d1927402f4dd4c1ef1f9a02f7.diff
LOG: [ObjectYAML][DWARF] Add one helper function `writeInitialLength()`. NFC.
Added:
Modified:
llvm/lib/ObjectYAML/DWARFEmitter.cpp
Removed:
################################################################################
diff --git a/llvm/lib/ObjectYAML/DWARFEmitter.cpp b/llvm/lib/ObjectYAML/DWARFEmitter.cpp
index 2761c6b6c997..b496e2a09386 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);
More information about the llvm-commits
mailing list