From 8d74900819bc1b1e01fdc44d711c381bfbbe7899 Mon Sep 17 00:00:00 2001 From: Alexey Samsonov Date: Wed, 8 Oct 2014 00:24:41 +0000 Subject: [PATCH] [DebugInfo] Pass DWARFSection down to DWARFUnit constructor (NFC). Keep the actual section contents and the relocation map together. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@219261 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/DebugInfo/DWARFCompileUnit.h | 8 ++++---- lib/DebugInfo/DWARFTypeUnit.h | 8 ++++---- lib/DebugInfo/DWARFUnit.cpp | 14 +++++++------- lib/DebugInfo/DWARFUnit.h | 20 ++++++++++---------- 4 files changed, 25 insertions(+), 25 deletions(-) diff --git a/lib/DebugInfo/DWARFCompileUnit.h b/lib/DebugInfo/DWARFCompileUnit.h index 47c7191d96e..b3190b18763 100644 --- a/lib/DebugInfo/DWARFCompileUnit.h +++ b/lib/DebugInfo/DWARFCompileUnit.h @@ -16,11 +16,11 @@ namespace llvm { class DWARFCompileUnit : public DWARFUnit { public: - DWARFCompileUnit(DWARFContext& Context, const DWARFDebugAbbrev *DA, - StringRef IS, StringRef RS, StringRef SS, StringRef SOS, - StringRef AOS, const RelocAddrMap *M, bool LE, + DWARFCompileUnit(DWARFContext &Context, const DWARFSection &Section, + const DWARFDebugAbbrev *DA, StringRef RS, StringRef SS, + StringRef SOS, StringRef AOS, bool LE, const DWARFUnitSectionBase &UnitSection) - : DWARFUnit(Context, DA, IS, RS, SS, SOS, AOS, M, LE, UnitSection) {} + : DWARFUnit(Context, Section, DA, RS, SS, SOS, AOS, LE, UnitSection) {} void dump(raw_ostream &OS); // VTable anchor. ~DWARFCompileUnit() override; diff --git a/lib/DebugInfo/DWARFTypeUnit.h b/lib/DebugInfo/DWARFTypeUnit.h index f861ad6d376..7471b5a821a 100644 --- a/lib/DebugInfo/DWARFTypeUnit.h +++ b/lib/DebugInfo/DWARFTypeUnit.h @@ -19,11 +19,11 @@ private: uint64_t TypeHash; uint32_t TypeOffset; public: - DWARFTypeUnit(DWARFContext &Context, const DWARFDebugAbbrev *DA, - StringRef IS, StringRef RS, StringRef SS, StringRef SOS, - StringRef AOS, const RelocAddrMap *M, bool LE, + DWARFTypeUnit(DWARFContext &Context, const DWARFSection &Section, + const DWARFDebugAbbrev *DA, StringRef RS, StringRef SS, + StringRef SOS, StringRef AOS, bool LE, const DWARFUnitSectionBase &UnitSection) - : DWARFUnit(Context, DA, IS, RS, SS, SOS, AOS, M, LE, UnitSection) {} + : DWARFUnit(Context, Section, DA, RS, SS, SOS, AOS, LE, UnitSection) {} uint32_t getHeaderSize() const override { return DWARFUnit::getHeaderSize() + 12; } diff --git a/lib/DebugInfo/DWARFUnit.cpp b/lib/DebugInfo/DWARFUnit.cpp index 092eb32d2a1..82c45297662 100644 --- a/lib/DebugInfo/DWARFUnit.cpp +++ b/lib/DebugInfo/DWARFUnit.cpp @@ -30,13 +30,13 @@ void DWARFUnitSectionBase::parseDWO(DWARFContext &C, C.getAddrSection(), C.isLittleEndian()); } -DWARFUnit::DWARFUnit(DWARFContext &DC, const DWARFDebugAbbrev *DA, - StringRef IS, StringRef RS, StringRef SS, StringRef SOS, - StringRef AOS, const RelocAddrMap *M, bool LE, - const DWARFUnitSectionBase& UnitSection) - : Context(DC), Abbrev(DA), InfoSection(IS), RangeSection(RS), - StringSection(SS), StringOffsetSection(SOS), AddrOffsetSection(AOS), - RelocMap(M), isLittleEndian(LE), UnitSection(UnitSection) { +DWARFUnit::DWARFUnit(DWARFContext &DC, const DWARFSection &Section, + const DWARFDebugAbbrev *DA, StringRef RS, StringRef SS, + StringRef SOS, StringRef AOS, bool LE, + const DWARFUnitSectionBase &UnitSection) + : Context(DC), InfoSection(Section), Abbrev(DA), RangeSection(RS), + StringSection(SS), StringOffsetSection(SOS), AddrOffsetSection(AOS), + isLittleEndian(LE), UnitSection(UnitSection) { clear(); } diff --git a/lib/DebugInfo/DWARFUnit.h b/lib/DebugInfo/DWARFUnit.h index 91245c46ff7..09eb55fc323 100644 --- a/lib/DebugInfo/DWARFUnit.h +++ b/lib/DebugInfo/DWARFUnit.h @@ -88,9 +88,8 @@ private: DataExtractor Data(Section.Data, LE, 0); uint32_t Offset = 0; while (Data.isValidOffset(Offset)) { - auto U = - llvm::make_unique(Context, DA, Section.Data, RS, SS, SOS, - AOS, &Section.Relocs, LE, *this); + auto U = llvm::make_unique(Context, Section, DA, RS, SS, SOS, + AOS, LE, *this); if (!U->extract(Data, &Offset)) break; this->push_back(std::move(U)); @@ -102,16 +101,16 @@ private: class DWARFUnit { DWARFContext &Context; + // Section containing this DWARFUnit. + const DWARFSection &InfoSection; const DWARFDebugAbbrev *Abbrev; - StringRef InfoSection; StringRef RangeSection; uint32_t RangeSectionBase; StringRef StringSection; StringRef StringOffsetSection; StringRef AddrOffsetSection; uint32_t AddrOffsetSectionBase; - const RelocAddrMap *RelocMap; bool isLittleEndian; const DWARFUnitSectionBase &UnitSection; @@ -140,9 +139,10 @@ protected: virtual uint32_t getHeaderSize() const { return 11; } public: - DWARFUnit(DWARFContext& Context, const DWARFDebugAbbrev *DA, StringRef IS, - StringRef RS, StringRef SS, StringRef SOS, StringRef AOS, - const RelocAddrMap *M, bool LE, const DWARFUnitSectionBase &UnitSection); + DWARFUnit(DWARFContext &Context, const DWARFSection &Section, + const DWARFDebugAbbrev *DA, StringRef RS, StringRef SS, + StringRef SOS, StringRef AOS, bool LE, + const DWARFUnitSectionBase &UnitSection); virtual ~DWARFUnit(); @@ -164,13 +164,13 @@ public: bool getStringOffsetSectionItem(uint32_t Index, uint32_t &Result) const; DataExtractor getDebugInfoExtractor() const { - return DataExtractor(InfoSection, isLittleEndian, AddrSize); + return DataExtractor(InfoSection.Data, isLittleEndian, AddrSize); } DataExtractor getStringExtractor() const { return DataExtractor(StringSection, false, 0); } - const RelocAddrMap *getRelocMap() const { return RelocMap; } + const RelocAddrMap *getRelocMap() const { return &InfoSection.Relocs; } bool extract(DataExtractor debug_info, uint32_t* offset_ptr);