From 99ff4a2dba4c638848cc11df370f2bb062b4afab Mon Sep 17 00:00:00 2001 From: Alexey Samsonov Date: Tue, 7 Oct 2014 23:45:11 +0000 Subject: [PATCH] [DebugInfo] Turn DWARFContext::Section into DWARFSection (NFC). It would be more convenient to pass DWARFSection into DWARFUnitSection constructor, instead of passing its components (Data and RelocAddrMap) as a separate arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@219252 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/DebugInfo/DWARFContext.h | 46 ++++++++++++++++-------------------- lib/DebugInfo/DWARFSection.h | 24 +++++++++++++++++++ 2 files changed, 45 insertions(+), 25 deletions(-) create mode 100644 lib/DebugInfo/DWARFSection.h diff --git a/lib/DebugInfo/DWARFContext.h b/lib/DebugInfo/DWARFContext.h index 3c627bd3280..05c6accd2e4 100644 --- a/lib/DebugInfo/DWARFContext.h +++ b/lib/DebugInfo/DWARFContext.h @@ -16,6 +16,7 @@ #include "DWARFDebugLine.h" #include "DWARFDebugLoc.h" #include "DWARFDebugRangeList.h" +#include "DWARFSection.h" #include "DWARFTypeUnit.h" #include "llvm/ADT/MapVector.h" #include "llvm/ADT/SmallVector.h" @@ -63,11 +64,6 @@ class DWARFContext : public DIContext { void parseDWOTypeUnits(); public: - struct Section { - StringRef Data; - RelocAddrMap Relocs; - }; - DWARFContext() : DIContext(CK_DWARF) {} static bool classof(const DIContext *DICtx) { @@ -170,17 +166,15 @@ public: virtual bool isLittleEndian() const = 0; virtual uint8_t getAddressSize() const = 0; - virtual const Section &getInfoSection() = 0; - typedef MapVector > TypeSectionMap; + virtual const DWARFSection &getInfoSection() = 0; + typedef MapVector> TypeSectionMap; virtual const TypeSectionMap &getTypesSections() = 0; virtual StringRef getAbbrevSection() = 0; - virtual const Section &getLocSection() = 0; - virtual const Section &getLocDWOSection() = 0; + virtual const DWARFSection &getLocSection() = 0; virtual StringRef getARangeSection() = 0; virtual StringRef getDebugFrameSection() = 0; - virtual const Section &getLineSection() = 0; - virtual const Section &getLineDWOSection() = 0; + virtual const DWARFSection &getLineSection() = 0; virtual StringRef getStringSection() = 0; virtual StringRef getRangeSection() = 0; virtual StringRef getPubNamesSection() = 0; @@ -189,9 +183,11 @@ public: virtual StringRef getGnuPubTypesSection() = 0; // Sections for DWARF5 split dwarf proposal. - virtual const Section &getInfoDWOSection() = 0; + virtual const DWARFSection &getInfoDWOSection() = 0; virtual const TypeSectionMap &getTypesDWOSections() = 0; virtual StringRef getAbbrevDWOSection() = 0; + virtual const DWARFSection &getLineDWOSection() = 0; + virtual const DWARFSection &getLocDWOSection() = 0; virtual StringRef getStringDWOSection() = 0; virtual StringRef getStringOffsetDWOSection() = 0; virtual StringRef getRangeDWOSection() = 0; @@ -216,15 +212,13 @@ class DWARFContextInMemory : public DWARFContext { virtual void anchor(); bool IsLittleEndian; uint8_t AddressSize; - Section InfoSection; + DWARFSection InfoSection; TypeSectionMap TypesSections; StringRef AbbrevSection; - Section LocSection; - Section LocDWOSection; + DWARFSection LocSection; StringRef ARangeSection; StringRef DebugFrameSection; - Section LineSection; - Section LineDWOSection; + DWARFSection LineSection; StringRef StringSection; StringRef RangeSection; StringRef PubNamesSection; @@ -233,9 +227,11 @@ class DWARFContextInMemory : public DWARFContext { StringRef GnuPubTypesSection; // Sections for DWARF5 split dwarf proposal. - Section InfoDWOSection; + DWARFSection InfoDWOSection; TypeSectionMap TypesDWOSections; StringRef AbbrevDWOSection; + DWARFSection LineDWOSection; + DWARFSection LocDWOSection; StringRef StringDWOSection; StringRef StringOffsetDWOSection; StringRef RangeDWOSection; @@ -247,15 +243,13 @@ public: DWARFContextInMemory(object::ObjectFile &); bool isLittleEndian() const override { return IsLittleEndian; } uint8_t getAddressSize() const override { return AddressSize; } - const Section &getInfoSection() override { return InfoSection; } + const DWARFSection &getInfoSection() override { return InfoSection; } const TypeSectionMap &getTypesSections() override { return TypesSections; } StringRef getAbbrevSection() override { return AbbrevSection; } - const Section &getLocSection() override { return LocSection; } - const Section &getLocDWOSection() override { return LocDWOSection; } + const DWARFSection &getLocSection() override { return LocSection; } StringRef getARangeSection() override { return ARangeSection; } StringRef getDebugFrameSection() override { return DebugFrameSection; } - const Section &getLineSection() override { return LineSection; } - const Section &getLineDWOSection() override { return LineDWOSection; } + const DWARFSection &getLineSection() override { return LineSection; } StringRef getStringSection() override { return StringSection; } StringRef getRangeSection() override { return RangeSection; } StringRef getPubNamesSection() override { return PubNamesSection; } @@ -264,11 +258,13 @@ public: StringRef getGnuPubTypesSection() override { return GnuPubTypesSection; } // Sections for DWARF5 split dwarf proposal. - const Section &getInfoDWOSection() override { return InfoDWOSection; } + const DWARFSection &getInfoDWOSection() override { return InfoDWOSection; } const TypeSectionMap &getTypesDWOSections() override { return TypesDWOSections; } StringRef getAbbrevDWOSection() override { return AbbrevDWOSection; } + const DWARFSection &getLineDWOSection() override { return LineDWOSection; } + const DWARFSection &getLocDWOSection() override { return LocDWOSection; } StringRef getStringDWOSection() override { return StringDWOSection; } StringRef getStringOffsetDWOSection() override { return StringOffsetDWOSection; diff --git a/lib/DebugInfo/DWARFSection.h b/lib/DebugInfo/DWARFSection.h new file mode 100644 index 00000000000..3aaf0ffb544 --- /dev/null +++ b/lib/DebugInfo/DWARFSection.h @@ -0,0 +1,24 @@ +//===-- DWARFSection.h ------------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIB_DEBUGINFO_DWARFSECTION_H +#define LLVM_LIB_DEBUGINFO_DWARFSECTION_H + +#include "DWARFRelocMap.h" + +namespace llvm { + +struct DWARFSection { + StringRef Data; + RelocAddrMap Relocs; +}; + +} + +#endif