aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-objcopy/ELF/Object.cpp
diff options
context:
space:
mode:
authorGeorgii Rymar <grimar@accesssoftek.com>2020-09-09 17:03:53 +0300
committerGeorgii Rymar <grimar@accesssoftek.com>2020-09-15 11:38:31 +0300
commit4845531fa88cb0f104b5afc5d99abded22623c53 (patch)
treef9f5f0bd618bdc9b03054592ef2f0d493467bbd2 /llvm/tools/llvm-objcopy/ELF/Object.cpp
parent9b4fa854343166dd88e4f2e135239bbf1ce0a16c (diff)
downloadllvm-4845531fa88cb0f104b5afc5d99abded22623c53.zip
llvm-4845531fa88cb0f104b5afc5d99abded22623c53.tar.gz
llvm-4845531fa88cb0f104b5afc5d99abded22623c53.tar.bz2
[lib/Object] - Refine interface of ELFFile<ELFT>. NFCI.
`ELFFile<ELFT>` has many methods that take pointers, though they assume that arguments are never null and hence could take references instead. This patch performs such clean-up. Differential revision: https://reviews.llvm.org/D87385
Diffstat (limited to 'llvm/tools/llvm-objcopy/ELF/Object.cpp')
-rw-r--r--llvm/tools/llvm-objcopy/ELF/Object.cpp30
1 files changed, 15 insertions, 15 deletions
diff --git a/llvm/tools/llvm-objcopy/ELF/Object.cpp b/llvm/tools/llvm-objcopy/ELF/Object.cpp
index e15fb24..e19285e 100644
--- a/llvm/tools/llvm-objcopy/ELF/Object.cpp
+++ b/llvm/tools/llvm-objcopy/ELF/Object.cpp
@@ -1320,7 +1320,7 @@ void ELFBuilder<ELFT>::readProgramHeaders(const ELFFile<ELFT> &HeadersFile) {
ElfHdr.Index = Index++;
ElfHdr.OriginalOffset = ElfHdr.Offset = EhdrOffset;
- const auto &Ehdr = *HeadersFile.getHeader();
+ const typename ELFT::Ehdr &Ehdr = HeadersFile.getHeader();
auto &PrHdr = Obj.ProgramHdrSegment;
PrHdr.Type = PT_PHDR;
PrHdr.Flags = 0;
@@ -1398,7 +1398,7 @@ void ELFBuilder<ELFT>::initSymbolTable(SymbolTableSection *SymTab) {
const Elf_Shdr &ShndxSec =
*unwrapOrError(ElfFile.getSection(SymTab->getShndxTable()->Index));
ShndxData = unwrapOrError(
- ElfFile.template getSectionContentsAsArray<Elf_Word>(&ShndxSec));
+ ElfFile.template getSectionContentsAsArray<Elf_Word>(ShndxSec));
if (ShndxData.size() != Symbols.size())
error("symbol section index table does not have the same number of "
"entries as the symbol table");
@@ -1476,7 +1476,7 @@ SectionBase &ELFBuilder<ELFT>::makeSection(const Elf_Shdr &Shdr) {
case SHT_REL:
case SHT_RELA:
if (Shdr.sh_flags & SHF_ALLOC) {
- Data = unwrapOrError(ElfFile.getSectionContents(&Shdr));
+ Data = unwrapOrError(ElfFile.getSectionContents(Shdr));
return Obj.addSection<DynamicRelocationSection>(Data);
}
return Obj.addSection<RelocationSection>();
@@ -1485,7 +1485,7 @@ SectionBase &ELFBuilder<ELFT>::makeSection(const Elf_Shdr &Shdr) {
// mean altering the memory image. There are no special link types or
// anything so we can just use a Section.
if (Shdr.sh_flags & SHF_ALLOC) {
- Data = unwrapOrError(ElfFile.getSectionContents(&Shdr));
+ Data = unwrapOrError(ElfFile.getSectionContents(Shdr));
return Obj.addSection<Section>(Data);
}
return Obj.addSection<StringTableSection>();
@@ -1493,16 +1493,16 @@ SectionBase &ELFBuilder<ELFT>::makeSection(const Elf_Shdr &Shdr) {
case SHT_GNU_HASH:
// Hash tables should refer to SHT_DYNSYM which we're not going to change.
// Because of this we don't need to mess with the hash tables either.
- Data = unwrapOrError(ElfFile.getSectionContents(&Shdr));
+ Data = unwrapOrError(ElfFile.getSectionContents(Shdr));
return Obj.addSection<Section>(Data);
case SHT_GROUP:
- Data = unwrapOrError(ElfFile.getSectionContents(&Shdr));
+ Data = unwrapOrError(ElfFile.getSectionContents(Shdr));
return Obj.addSection<GroupSection>(Data);
case SHT_DYNSYM:
- Data = unwrapOrError(ElfFile.getSectionContents(&Shdr));
+ Data = unwrapOrError(ElfFile.getSectionContents(Shdr));
return Obj.addSection<DynamicSymbolTableSection>(Data);
case SHT_DYNAMIC:
- Data = unwrapOrError(ElfFile.getSectionContents(&Shdr));
+ Data = unwrapOrError(ElfFile.getSectionContents(Shdr));
return Obj.addSection<DynamicSection>(Data);
case SHT_SYMTAB: {
auto &SymTab = Obj.addSection<SymbolTableSection>();
@@ -1517,9 +1517,9 @@ SectionBase &ELFBuilder<ELFT>::makeSection(const Elf_Shdr &Shdr) {
case SHT_NOBITS:
return Obj.addSection<Section>(Data);
default: {
- Data = unwrapOrError(ElfFile.getSectionContents(&Shdr));
+ Data = unwrapOrError(ElfFile.getSectionContents(Shdr));
- StringRef Name = unwrapOrError(ElfFile.getSectionName(&Shdr));
+ StringRef Name = unwrapOrError(ElfFile.getSectionName(Shdr));
if (Name.startswith(".zdebug") || (Shdr.sh_flags & ELF::SHF_COMPRESSED)) {
uint64_t DecompressedSize, DecompressedAlign;
std::tie(DecompressedSize, DecompressedAlign) =
@@ -1541,7 +1541,7 @@ template <class ELFT> void ELFBuilder<ELFT>::readSectionHeaders() {
continue;
}
auto &Sec = makeSection(Shdr);
- Sec.Name = std::string(unwrapOrError(ElfFile.getSectionName(&Shdr)));
+ Sec.Name = std::string(unwrapOrError(ElfFile.getSectionName(Shdr)));
Sec.Type = Sec.OriginalType = Shdr.sh_type;
Sec.Flags = Sec.OriginalFlags = Shdr.sh_flags;
Sec.Addr = Shdr.sh_addr;
@@ -1560,7 +1560,7 @@ template <class ELFT> void ELFBuilder<ELFT>::readSectionHeaders() {
}
template <class ELFT> void ELFBuilder<ELFT>::readSections(bool EnsureSymtab) {
- uint32_t ShstrIndex = ElfFile.getHeader()->e_shstrndx;
+ uint32_t ShstrIndex = ElfFile.getHeader().e_shstrndx;
if (ShstrIndex == SHN_XINDEX)
ShstrIndex = unwrapOrError(ElfFile.getSection(0))->sh_link;
@@ -1602,10 +1602,10 @@ template <class ELFT> void ELFBuilder<ELFT>::readSections(bool EnsureSymtab) {
auto Shdr = unwrapOrError(ElfFile.sections()).begin() + RelSec->Index;
if (RelSec->Type == SHT_REL)
initRelocations(RelSec, Obj.SymbolTable,
- unwrapOrError(ElfFile.rels(Shdr)));
+ unwrapOrError(ElfFile.rels(*Shdr)));
else
initRelocations(RelSec, Obj.SymbolTable,
- unwrapOrError(ElfFile.relas(Shdr)));
+ unwrapOrError(ElfFile.relas(*Shdr)));
} else if (auto GroupSec = dyn_cast<GroupSection>(&Sec)) {
initGroupSection(GroupSec);
}
@@ -1622,7 +1622,7 @@ template <class ELFT> void ELFBuilder<ELFT>::build(bool EnsureSymtab) {
ELFFile<ELFT> HeadersFile = unwrapOrError(ELFFile<ELFT>::create(toStringRef(
{ElfFile.base() + EhdrOffset, ElfFile.getBufSize() - EhdrOffset})));
- auto &Ehdr = *HeadersFile.getHeader();
+ auto &Ehdr = HeadersFile.getHeader();
Obj.OSABI = Ehdr.e_ident[EI_OSABI];
Obj.ABIVersion = Ehdr.e_ident[EI_ABIVERSION];
Obj.Type = Ehdr.e_type;