[llvm-branch-commits] [llvm] ffbce65 - [lib/Object, tools] - Make ELFObjectFile::getELFFile return reference.
Georgii Rymar via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Fri Dec 4 05:06:36 PST 2020
Author: Georgii Rymar
Date: 2020-12-04T16:02:29+03:00
New Revision: ffbce65f95eea7db1ca151d38b3391b2a4f3da81
URL: https://github.com/llvm/llvm-project/commit/ffbce65f95eea7db1ca151d38b3391b2a4f3da81
DIFF: https://github.com/llvm/llvm-project/commit/ffbce65f95eea7db1ca151d38b3391b2a4f3da81.diff
LOG: [lib/Object, tools] - Make ELFObjectFile::getELFFile return reference.
We always have an object, so we don't have to return a pointer.
Differential revision: https://reviews.llvm.org/D92560
Added:
Modified:
llvm/include/llvm/Object/ELFObjectFile.h
llvm/lib/DebugInfo/Symbolize/Symbolize.cpp
llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp
llvm/lib/InterfaceStub/ELFObjHandler.cpp
llvm/lib/XRay/InstrumentationMap.cpp
llvm/tools/llvm-gsymutil/llvm-gsymutil.cpp
llvm/tools/llvm-objcopy/ELF/ELFObjcopy.cpp
llvm/tools/llvm-objcopy/ELF/Object.h
llvm/tools/llvm-objdump/ELFDump.cpp
llvm/tools/llvm-readobj/DwarfCFIEHPrinter.h
llvm/tools/llvm-readobj/ELFDumper.cpp
llvm/tools/obj2yaml/elf2yaml.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/Object/ELFObjectFile.h b/llvm/include/llvm/Object/ELFObjectFile.h
index 3a4937235d5b..a75aba86f9d4 100644
--- a/llvm/include/llvm/Object/ELFObjectFile.h
+++ b/llvm/include/llvm/Object/ELFObjectFile.h
@@ -441,7 +441,7 @@ template <class ELFT> class ELFObjectFile : public ELFObjectFileBase {
unsigned getPlatformFlags() const override { return EF.getHeader().e_flags; }
- const ELFFile<ELFT> *getELFFile() const { return &EF; }
+ const ELFFile<ELFT> &getELFFile() const { return EF; }
bool isDyldType() const { return isDyldELFObject; }
static bool classof(const Binary *v) {
diff --git a/llvm/lib/DebugInfo/Symbolize/Symbolize.cpp b/llvm/lib/DebugInfo/Symbolize/Symbolize.cpp
index 3eb84a141b81..5a98ce0753b6 100644
--- a/llvm/lib/DebugInfo/Symbolize/Symbolize.cpp
+++ b/llvm/lib/DebugInfo/Symbolize/Symbolize.cpp
@@ -287,10 +287,8 @@ bool darwinDsymMatchesBinary(const MachOObjectFile *DbgObj,
}
template <typename ELFT>
-Optional<ArrayRef<uint8_t>> getBuildID(const ELFFile<ELFT> *Obj) {
- if (!Obj)
- return {};
- auto PhdrsOrErr = Obj->program_headers();
+Optional<ArrayRef<uint8_t>> getBuildID(const ELFFile<ELFT> &Obj) {
+ auto PhdrsOrErr = Obj.program_headers();
if (!PhdrsOrErr) {
consumeError(PhdrsOrErr.takeError());
return {};
@@ -299,7 +297,7 @@ Optional<ArrayRef<uint8_t>> getBuildID(const ELFFile<ELFT> *Obj) {
if (P.p_type != ELF::PT_NOTE)
continue;
Error Err = Error::success();
- for (auto N : Obj->notes(P, Err))
+ for (auto N : Obj.notes(P, Err))
if (N.getType() == ELF::NT_GNU_BUILD_ID && N.getName() == ELF::ELF_NOTE_GNU)
return N.getDesc();
consumeError(std::move(Err));
diff --git a/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp b/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp
index 49933fc14d52..a0f944db7943 100644
--- a/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp
+++ b/llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp
@@ -626,7 +626,7 @@ class ELFJITLinker_x86_64 : public JITLinker<ELFJITLinker_x86_64> {
auto &ELFObjFile = cast<object::ELFObjectFile<object::ELF64LE>>(**ELFObj);
std::string fileName(ELFObj->get()->getFileName());
return ELFLinkGraphBuilder_x86_64(std::move(fileName),
- *ELFObjFile.getELFFile())
+ ELFObjFile.getELFFile())
.buildGraph();
}
diff --git a/llvm/lib/InterfaceStub/ELFObjHandler.cpp b/llvm/lib/InterfaceStub/ELFObjHandler.cpp
index ba583b79571e..e50ebd7b8ba1 100644
--- a/llvm/lib/InterfaceStub/ELFObjHandler.cpp
+++ b/llvm/lib/InterfaceStub/ELFObjHandler.cpp
@@ -585,15 +585,15 @@ buildStub(const ELFObjectFile<ELFT> &ElfObj) {
using Elf_Sym_Range = typename ELFT::SymRange;
using Elf_Sym = typename ELFT::Sym;
std::unique_ptr<ELFStub> DestStub = std::make_unique<ELFStub>();
- const ELFFile<ELFT> *ElfFile = ElfObj.getELFFile();
+ const ELFFile<ELFT> &ElfFile = ElfObj.getELFFile();
// Fetch .dynamic table.
- Expected<Elf_Dyn_Range> DynTable = ElfFile->dynamicEntries();
+ Expected<Elf_Dyn_Range> DynTable = ElfFile.dynamicEntries();
if (!DynTable) {
return DynTable.takeError();
}
// Fetch program headers.
- Expected<Elf_Phdr_Range> PHdrs = ElfFile->program_headers();
+ Expected<Elf_Phdr_Range> PHdrs = ElfFile.program_headers();
if (!PHdrs) {
return PHdrs.takeError();
}
@@ -604,8 +604,7 @@ buildStub(const ELFObjectFile<ELFT> &ElfObj) {
return std::move(Err);
// Get pointer to in-memory location of .dynstr section.
- Expected<const uint8_t *> DynStrPtr =
- ElfFile->toMappedAddr(DynEnt.StrTabAddr);
+ Expected<const uint8_t *> DynStrPtr = ElfFile.toMappedAddr(DynEnt.StrTabAddr);
if (!DynStrPtr)
return appendToError(DynStrPtr.takeError(),
"when locating .dynstr section contents");
@@ -614,7 +613,7 @@ buildStub(const ELFObjectFile<ELFT> &ElfObj) {
DynEnt.StrSize);
// Populate Arch from ELF header.
- DestStub->Arch = ElfFile->getHeader().e_machine;
+ DestStub->Arch = ElfFile.getHeader().e_machine;
// Populate SoName from .dynamic entries and dynamic string table.
if (DynEnt.SONameOffset.hasValue()) {
@@ -637,13 +636,13 @@ buildStub(const ELFObjectFile<ELFT> &ElfObj) {
}
// Populate Symbols from .dynsym table and dynamic string table.
- Expected<uint64_t> SymCount = getNumSyms(DynEnt, *ElfFile);
+ Expected<uint64_t> SymCount = getNumSyms(DynEnt, ElfFile);
if (!SymCount)
return SymCount.takeError();
if (*SymCount > 0) {
// Get pointer to in-memory location of .dynsym section.
Expected<const uint8_t *> DynSymPtr =
- ElfFile->toMappedAddr(DynEnt.DynSymAddr);
+ ElfFile.toMappedAddr(DynEnt.DynSymAddr);
if (!DynSymPtr)
return appendToError(DynSymPtr.takeError(),
"when locating .dynsym section contents");
diff --git a/llvm/lib/XRay/InstrumentationMap.cpp b/llvm/lib/XRay/InstrumentationMap.cpp
index 9202e2870bdf..e6534e5a7be7 100644
--- a/llvm/lib/XRay/InstrumentationMap.cpp
+++ b/llvm/lib/XRay/InstrumentationMap.cpp
@@ -95,16 +95,16 @@ loadObj(StringRef Filename, object::OwningBinary<object::ObjectFile> &ObjFile,
if (ObjFile.getBinary()->isELF()) {
uint32_t RelativeRelocation = [](object::ObjectFile *ObjFile) {
if (const auto *ELFObj = dyn_cast<object::ELF32LEObjectFile>(ObjFile))
- return ELFObj->getELFFile()->getRelativeRelocationType();
+ return ELFObj->getELFFile().getRelativeRelocationType();
else if (const auto *ELFObj =
dyn_cast<object::ELF32BEObjectFile>(ObjFile))
- return ELFObj->getELFFile()->getRelativeRelocationType();
+ return ELFObj->getELFFile().getRelativeRelocationType();
else if (const auto *ELFObj =
dyn_cast<object::ELF64LEObjectFile>(ObjFile))
- return ELFObj->getELFFile()->getRelativeRelocationType();
+ return ELFObj->getELFFile().getRelativeRelocationType();
else if (const auto *ELFObj =
dyn_cast<object::ELF64BEObjectFile>(ObjFile))
- return ELFObj->getELFFile()->getRelativeRelocationType();
+ return ELFObj->getELFFile().getRelativeRelocationType();
else
return static_cast<uint32_t>(0);
}(ObjFile.getBinary());
diff --git a/llvm/tools/llvm-gsymutil/llvm-gsymutil.cpp b/llvm/tools/llvm-gsymutil/llvm-gsymutil.cpp
index 2d75473a3fdf..b1dd5482938b 100644
--- a/llvm/tools/llvm-gsymutil/llvm-gsymutil.cpp
+++ b/llvm/tools/llvm-gsymutil/llvm-gsymutil.cpp
@@ -207,8 +207,8 @@ static bool filterArch(MachOObjectFile &Obj) {
/// \returns A valid image base address if we are able to extract one.
template <class ELFT>
static llvm::Optional<uint64_t>
-getImageBaseAddress(const object::ELFFile<ELFT> *ELFFile) {
- auto PhdrRangeOrErr = ELFFile->program_headers();
+getImageBaseAddress(const object::ELFFile<ELFT> &ELFFile) {
+ auto PhdrRangeOrErr = ELFFile.program_headers();
if (!PhdrRangeOrErr) {
consumeError(PhdrRangeOrErr.takeError());
return llvm::None;
diff --git a/llvm/tools/llvm-objcopy/ELF/ELFObjcopy.cpp b/llvm/tools/llvm-objcopy/ELF/ELFObjcopy.cpp
index 16984ad266e3..c53a34bc46a3 100644
--- a/llvm/tools/llvm-objcopy/ELF/ELFObjcopy.cpp
+++ b/llvm/tools/llvm-objcopy/ELF/ELFObjcopy.cpp
@@ -192,13 +192,13 @@ findBuildID(const CopyConfig &Config, const object::ELFFile<ELFT> &In) {
static Expected<ArrayRef<uint8_t>>
findBuildID(const CopyConfig &Config, const object::ELFObjectFileBase &In) {
if (auto *O = dyn_cast<ELFObjectFile<ELF32LE>>(&In))
- return findBuildID(Config, *O->getELFFile());
+ return findBuildID(Config, O->getELFFile());
else if (auto *O = dyn_cast<ELFObjectFile<ELF64LE>>(&In))
- return findBuildID(Config, *O->getELFFile());
+ return findBuildID(Config, O->getELFFile());
else if (auto *O = dyn_cast<ELFObjectFile<ELF32BE>>(&In))
- return findBuildID(Config, *O->getELFFile());
+ return findBuildID(Config, O->getELFFile());
else if (auto *O = dyn_cast<ELFObjectFile<ELF64BE>>(&In))
- return findBuildID(Config, *O->getELFFile());
+ return findBuildID(Config, O->getELFFile());
llvm_unreachable("Bad file format");
}
diff --git a/llvm/tools/llvm-objcopy/ELF/Object.h b/llvm/tools/llvm-objcopy/ELF/Object.h
index 5bd15890e5fe..0205c2d4f398 100644
--- a/llvm/tools/llvm-objcopy/ELF/Object.h
+++ b/llvm/tools/llvm-objcopy/ELF/Object.h
@@ -957,7 +957,7 @@ template <class ELFT> class ELFBuilder {
public:
ELFBuilder(const ELFObjectFile<ELFT> &ElfObj, Object &Obj,
Optional<StringRef> ExtractPartition)
- : ElfFile(*ElfObj.getELFFile()), Obj(Obj),
+ : ElfFile(ElfObj.getELFFile()), Obj(Obj),
ExtractPartition(ExtractPartition) {}
Error build(bool EnsureSymtab);
diff --git a/llvm/tools/llvm-objdump/ELFDump.cpp b/llvm/tools/llvm-objdump/ELFDump.cpp
index c7a84385ffd5..031edb37f5cd 100644
--- a/llvm/tools/llvm-objdump/ELFDump.cpp
+++ b/llvm/tools/llvm-objdump/ELFDump.cpp
@@ -25,14 +25,14 @@ using namespace llvm::object;
using namespace llvm::objdump;
template <class ELFT>
-static Expected<StringRef> getDynamicStrTab(const ELFFile<ELFT> *Elf) {
- auto DynamicEntriesOrError = Elf->dynamicEntries();
+static Expected<StringRef> getDynamicStrTab(const ELFFile<ELFT> &Elf) {
+ auto DynamicEntriesOrError = Elf.dynamicEntries();
if (!DynamicEntriesOrError)
return DynamicEntriesOrError.takeError();
for (const typename ELFT::Dyn &Dyn : *DynamicEntriesOrError) {
if (Dyn.d_tag == ELF::DT_STRTAB) {
- auto MappedAddrOrError = Elf->toMappedAddr(Dyn.getPtr());
+ auto MappedAddrOrError = Elf.toMappedAddr(Dyn.getPtr());
if (!MappedAddrOrError)
consumeError(MappedAddrOrError.takeError());
return StringRef(reinterpret_cast<const char *>(*MappedAddrOrError));
@@ -40,13 +40,13 @@ static Expected<StringRef> getDynamicStrTab(const ELFFile<ELFT> *Elf) {
}
// If the dynamic segment is not present, we fall back on the sections.
- auto SectionsOrError = Elf->sections();
+ auto SectionsOrError = Elf.sections();
if (!SectionsOrError)
return SectionsOrError.takeError();
for (const typename ELFT::Shdr &Sec : *SectionsOrError) {
if (Sec.sh_type == ELF::SHT_DYNSYM)
- return Elf->getStringTableForSymtab(Sec);
+ return Elf.getStringTableForSymtab(Sec);
}
return createError("dynamic string table not found");
@@ -56,7 +56,7 @@ template <class ELFT>
static Error getRelocationValueString(const ELFObjectFile<ELFT> *Obj,
const RelocationRef &RelRef,
SmallVectorImpl<char> &Result) {
- const ELFFile<ELFT> &EF = *Obj->getELFFile();
+ const ELFFile<ELFT> &EF = Obj->getELFFile();
DataRefImpl Rel = RelRef.getRawDataRefImpl();
auto SecOrErr = EF.getSection(Rel.d.a);
if (!SecOrErr)
@@ -133,9 +133,9 @@ Error objdump::getELFRelocationValueString(const ELFObjectFileBase *Obj,
}
template <class ELFT>
-static uint64_t getSectionLMA(const ELFFile<ELFT> *Obj,
+static uint64_t getSectionLMA(const ELFFile<ELFT> &Obj,
const object::ELFSectionRef &Sec) {
- auto PhdrRangeOrErr = Obj->program_headers();
+ auto PhdrRangeOrErr = Obj.program_headers();
if (!PhdrRangeOrErr)
report_fatal_error(toString(PhdrRangeOrErr.takeError()));
@@ -162,14 +162,14 @@ uint64_t objdump::getELFSectionLMA(const object::ELFSectionRef &Sec) {
}
template <class ELFT>
-static void printDynamicSection(const ELFFile<ELFT> *Elf, StringRef Filename) {
+static void printDynamicSection(const ELFFile<ELFT> &Elf, StringRef Filename) {
ArrayRef<typename ELFT::Dyn> DynamicEntries =
- unwrapOrError(Elf->dynamicEntries(), Filename);
+ unwrapOrError(Elf.dynamicEntries(), Filename);
// Find the maximum tag name length to format the value column properly.
size_t MaxLen = 0;
for (const typename ELFT::Dyn &Dyn : DynamicEntries)
- MaxLen = std::max(MaxLen, Elf->getDynamicTagAsString(Dyn.d_tag).size());
+ MaxLen = std::max(MaxLen, Elf.getDynamicTagAsString(Dyn.d_tag).size());
std::string TagFmt = " %-" + std::to_string(MaxLen) + "s ";
outs() << "Dynamic Section:\n";
@@ -177,7 +177,7 @@ static void printDynamicSection(const ELFFile<ELFT> *Elf, StringRef Filename) {
if (Dyn.d_tag == ELF::DT_NULL)
continue;
- std::string Str = Elf->getDynamicTagAsString(Dyn.d_tag);
+ std::string Str = Elf.getDynamicTagAsString(Dyn.d_tag);
outs() << format(TagFmt.c_str(), Str.c_str());
const char *Fmt =
@@ -199,9 +199,9 @@ static void printDynamicSection(const ELFFile<ELFT> *Elf, StringRef Filename) {
}
template <class ELFT>
-static void printProgramHeaders(const ELFFile<ELFT> *Obj, StringRef FileName) {
+static void printProgramHeaders(const ELFFile<ELFT> &Obj, StringRef FileName) {
outs() << "Program Header:\n";
- auto ProgramHeaderOrError = Obj->program_headers();
+ auto ProgramHeaderOrError = Obj.program_headers();
if (!ProgramHeaderOrError) {
reportWarning("unable to read program headers: " +
toString(ProgramHeaderOrError.takeError()),
@@ -328,20 +328,20 @@ static void printSymbolVersionDefinition(const typename ELFT::Shdr &Shdr,
}
template <class ELFT>
-static void printSymbolVersionInfo(const ELFFile<ELFT> *Elf,
+static void printSymbolVersionInfo(const ELFFile<ELFT> &Elf,
StringRef FileName) {
ArrayRef<typename ELFT::Shdr> Sections =
- unwrapOrError(Elf->sections(), FileName);
+ unwrapOrError(Elf.sections(), FileName);
for (const typename ELFT::Shdr &Shdr : Sections) {
if (Shdr.sh_type != ELF::SHT_GNU_verneed &&
Shdr.sh_type != ELF::SHT_GNU_verdef)
continue;
ArrayRef<uint8_t> Contents =
- unwrapOrError(Elf->getSectionContents(Shdr), FileName);
+ unwrapOrError(Elf.getSectionContents(Shdr), FileName);
const typename ELFT::Shdr *StrTabSec =
- unwrapOrError(Elf->getSection(Shdr.sh_link), FileName);
- StringRef StrTab = unwrapOrError(Elf->getStringTable(*StrTabSec), FileName);
+ unwrapOrError(Elf.getSection(Shdr.sh_link), FileName);
+ StringRef StrTab = unwrapOrError(Elf.getStringTable(*StrTabSec), FileName);
if (Shdr.sh_type == ELF::SHT_GNU_verneed)
printSymbolVersionDependency<ELFT>(Contents, StrTab);
diff --git a/llvm/tools/llvm-readobj/DwarfCFIEHPrinter.h b/llvm/tools/llvm-readobj/DwarfCFIEHPrinter.h
index d57f82185c63..2dfe21684a62 100644
--- a/llvm/tools/llvm-readobj/DwarfCFIEHPrinter.h
+++ b/llvm/tools/llvm-readobj/DwarfCFIEHPrinter.h
@@ -49,7 +49,7 @@ template <class ELFT>
static const typename ELFT::Shdr *
findSectionByAddress(const object::ELFObjectFile<ELFT> &ObjF, uint64_t Addr) {
Expected<typename ELFT::ShdrRange> SectionsOrErr =
- ObjF.getELFFile()->sections();
+ ObjF.getELFFile().sections();
if (!SectionsOrErr)
reportError(SectionsOrErr.takeError(), ObjF.getFileName());
@@ -61,7 +61,7 @@ findSectionByAddress(const object::ELFObjectFile<ELFT> &ObjF, uint64_t Addr) {
template <typename ELFT>
void PrinterContext<ELFT>::printUnwindInformation() const {
- const object::ELFFile<ELFT> &Obj = *ObjF.getELFFile();
+ const object::ELFFile<ELFT> &Obj = ObjF.getELFFile();
Expected<typename ELFT::PhdrRange> PhdrsOrErr = Obj.program_headers();
if (!PhdrsOrErr)
@@ -100,7 +100,7 @@ void PrinterContext<ELFT>::printEHFrameHdr(const Elf_Phdr *EHFramePHdr) const {
W.startLine() << format("Offset: 0x%" PRIx64 "\n", (uint64_t)EHFramePHdr->p_offset);
W.startLine() << format("Size: 0x%" PRIx64 "\n", (uint64_t)EHFramePHdr->p_memsz);
- const object::ELFFile<ELFT> &Obj = *ObjF.getELFFile();
+ const object::ELFFile<ELFT> &Obj = ObjF.getELFFile();
if (const Elf_Shdr *EHFrameHdr =
findSectionByAddress(ObjF, EHFramePHdr->p_vaddr)) {
Expected<StringRef> NameOrErr = Obj.getSectionName(*EHFrameHdr);
@@ -180,7 +180,7 @@ void PrinterContext<ELFT>::printEHFrame(const Elf_Shdr *EHFrameShdr) const {
W.indent();
Expected<ArrayRef<uint8_t>> DataOrErr =
- ObjF.getELFFile()->getSectionContents(*EHFrameShdr);
+ ObjF.getELFFile().getSectionContents(*EHFrameShdr);
if (!DataOrErr)
reportError(DataOrErr.takeError(), ObjF.getFileName());
diff --git a/llvm/tools/llvm-readobj/ELFDumper.cpp b/llvm/tools/llvm-readobj/ELFDumper.cpp
index e682581684e9..75caf4b150b0 100644
--- a/llvm/tools/llvm-readobj/ELFDumper.cpp
+++ b/llvm/tools/llvm-readobj/ELFDumper.cpp
@@ -751,7 +751,7 @@ template <typename ELFT> class DumpStyle {
TYPEDEF_ELF_TYPES(ELFT)
DumpStyle(const ELFDumper<ELFT> &Dumper)
- : Obj(*Dumper.getElfObject().getELFFile()), ElfObj(Dumper.getElfObject()),
+ : Obj(Dumper.getElfObject().getELFFile()), ElfObj(Dumper.getElfObject()),
Dumper(Dumper) {
FileName = ElfObj.getFileName();
}
@@ -2012,7 +2012,7 @@ void ELFDumper<ELFT>::loadDynamicTable() {
template <typename ELFT>
ELFDumper<ELFT>::ELFDumper(const object::ELFObjectFile<ELFT> &O,
ScopedPrinter &Writer)
- : ObjDumper(Writer, O.getFileName()), ObjF(O), Obj(*O.getELFFile()),
+ : ObjDumper(Writer, O.getFileName()), ObjF(O), Obj(O.getELFFile()),
DynRelRegion(O, *this), DynRelaRegion(O, *this), DynRelrRegion(O, *this),
DynPLTRelRegion(O, *this), DynamicTable(O, *this) {
if (opts::Output == opts::GNU)
@@ -2695,7 +2695,7 @@ template <class ELFT>
static Error checkHashTable(const ELFDumper<ELFT> &Dumper,
const typename ELFT::Hash *H,
bool *IsHeaderValid = nullptr) {
- const ELFFile<ELFT> &Obj = *Dumper.getElfObject().getELFFile();
+ const ELFFile<ELFT> &Obj = Dumper.getElfObject().getELFFile();
const uint64_t SecOffset = (const uint8_t *)H - Obj.base();
if (Dumper.getHashTableEntSize() == 8) {
auto It = llvm::find_if(ElfMachineType, [&](const EnumEntry<unsigned> &E) {
@@ -2986,7 +2986,7 @@ template <class ELFT> class MipsGOTParser {
template <class ELFT>
MipsGOTParser<ELFT>::MipsGOTParser(const ELFDumper<ELFT> &D)
- : IsStatic(D.dynamic_table().empty()), Obj(*D.getElfObject().getELFFile()),
+ : IsStatic(D.dynamic_table().empty()), Obj(D.getElfObject().getELFFile()),
Dumper(D), GotSec(nullptr), LocalNum(0), GlobalNum(0), PltSec(nullptr),
PltRelSec(nullptr), PltSymTable(nullptr),
FileName(D.getElfObject().getFileName()) {}
@@ -4578,7 +4578,7 @@ RelSymbol<ELFT> getSymbolForReloc(const ELFDumper<ELFT> &Dumper,
"index is greater than or equal to the number of dynamic symbols (" +
Twine(Symbols.size()) + ")");
- const ELFFile<ELFT> &Obj = *Dumper.getElfObject().getELFFile();
+ const ELFFile<ELFT> &Obj = Dumper.getElfObject().getELFFile();
const uint64_t FileSize = Obj.getBufSize();
const uint64_t SymOffset = ((const uint8_t *)FirstSym - Obj.base()) +
(uint64_t)Reloc.Symbol * sizeof(Elf_Sym);
@@ -5523,7 +5523,7 @@ static void printNotesHelper(
StartNotesFn,
llvm::function_ref<void(const typename ELFT::Note &)> ProcessNoteFn,
llvm::function_ref<void()> FinishNotesFn) {
- const ELFFile<ELFT> &Obj = *Dumper.getElfObject().getELFFile();
+ const ELFFile<ELFT> &Obj = Dumper.getElfObject().getELFFile();
ArrayRef<typename ELFT::Shdr> Sections = cantFail(Obj.sections());
if (Obj.getHeader().e_type != ELF::ET_CORE && !Sections.empty()) {
@@ -6205,7 +6205,7 @@ getMipsAbiFlagsSection(const ELFDumper<ELFT> &Dumper) {
constexpr StringRef ErrPrefix = "unable to read the .MIPS.abiflags section: ";
Expected<ArrayRef<uint8_t>> DataOrErr =
- Dumper.getElfObject().getELFFile()->getSectionContents(*Sec);
+ Dumper.getElfObject().getELFFile().getSectionContents(*Sec);
if (!DataOrErr)
return createError(ErrPrefix + toString(DataOrErr.takeError()));
diff --git a/llvm/tools/obj2yaml/elf2yaml.cpp b/llvm/tools/obj2yaml/elf2yaml.cpp
index 0a85179a7b93..405e8b17d2fd 100644
--- a/llvm/tools/obj2yaml/elf2yaml.cpp
+++ b/llvm/tools/obj2yaml/elf2yaml.cpp
@@ -1566,16 +1566,16 @@ static Error elf2yaml(raw_ostream &Out, const object::ELFFile<ELFT> &Obj,
Error elf2yaml(raw_ostream &Out, const object::ObjectFile &Obj) {
std::unique_ptr<DWARFContext> DWARFCtx = DWARFContext::create(Obj);
if (const auto *ELFObj = dyn_cast<object::ELF32LEObjectFile>(&Obj))
- return elf2yaml(Out, *ELFObj->getELFFile(), std::move(DWARFCtx));
+ return elf2yaml(Out, ELFObj->getELFFile(), std::move(DWARFCtx));
if (const auto *ELFObj = dyn_cast<object::ELF32BEObjectFile>(&Obj))
- return elf2yaml(Out, *ELFObj->getELFFile(), std::move(DWARFCtx));
+ return elf2yaml(Out, ELFObj->getELFFile(), std::move(DWARFCtx));
if (const auto *ELFObj = dyn_cast<object::ELF64LEObjectFile>(&Obj))
- return elf2yaml(Out, *ELFObj->getELFFile(), std::move(DWARFCtx));
+ return elf2yaml(Out, ELFObj->getELFFile(), std::move(DWARFCtx));
if (const auto *ELFObj = dyn_cast<object::ELF64BEObjectFile>(&Obj))
- return elf2yaml(Out, *ELFObj->getELFFile(), std::move(DWARFCtx));
+ return elf2yaml(Out, ELFObj->getELFFile(), std::move(DWARFCtx));
llvm_unreachable("unknown ELF file format");
}
More information about the llvm-branch-commits
mailing list