diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h b/llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h --- a/llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h +++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h @@ -105,6 +105,7 @@ Header Hdr; HeaderData HdrData; + dwarf::FormParams FormParams; bool IsValid = false; /// Returns true if we should continue scanning for entries or false if we've diff --git a/llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp b/llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp --- a/llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp +++ b/llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp @@ -54,6 +54,7 @@ Hdr.BucketCount = AccelSection.getU32(&Offset); Hdr.HashCount = AccelSection.getU32(&Offset); Hdr.HeaderDataLength = AccelSection.getU32(&Offset); + FormParams = {Hdr.Version, 0, dwarf::DwarfFormat::DWARF32}; // Check that we can read all the hashes and offsets from the // section (see SourceLevelDebugging.rst for the structure of the index). @@ -111,7 +112,6 @@ AppleAcceleratorTable::readAtoms(uint64_t *HashDataOffset) { uint64_t DieOffset = dwarf::DW_INVALID_OFFSET; dwarf::Tag DieTag = dwarf::DW_TAG_null; - dwarf::FormParams FormParams = {Hdr.Version, 0, dwarf::DwarfFormat::DWARF32}; for (auto Atom : getAtomsDesc()) { DWARFFormValue FormValue(Atom.second); @@ -160,7 +160,6 @@ bool AppleAcceleratorTable::dumpName(ScopedPrinter &W, SmallVectorImpl &AtomForms, uint64_t *DataOffset) const { - dwarf::FormParams FormParams = {Hdr.Version, 0, dwarf::DwarfFormat::DWARF32}; uint64_t NameOffset = *DataOffset; if (!AccelSection.isValidOffsetForDataOfSize(*DataOffset, 4)) { W.printString("Incorrectly terminated list."); @@ -262,11 +261,8 @@ void AppleAcceleratorTable::Entry::extract( const AppleAcceleratorTable &AccelTable, uint64_t *Offset) { - - dwarf::FormParams FormParams = {AccelTable.Hdr.Version, 0, - dwarf::DwarfFormat::DWARF32}; for (auto &Atom : Values) - Atom.extractValue(AccelTable.AccelSection, Offset, FormParams); + Atom.extractValue(AccelTable.AccelSection, Offset, AccelTable.FormParams); } std::optional