diff options
Diffstat (limited to 'llvm/lib/Object')
-rw-r--r-- | llvm/lib/Object/COFFObjectFile.cpp | 9 | ||||
-rw-r--r-- | llvm/lib/Object/Decompressor.cpp | 13 | ||||
-rw-r--r-- | llvm/lib/Object/ELFObjectFile.cpp | 8 | ||||
-rw-r--r-- | llvm/lib/Object/MachOObjectFile.cpp | 15 | ||||
-rw-r--r-- | llvm/lib/Object/Object.cpp | 8 |
5 files changed, 20 insertions, 33 deletions
diff --git a/llvm/lib/Object/COFFObjectFile.cpp b/llvm/lib/Object/COFFObjectFile.cpp index afd68694deb..854664e679d 100644 --- a/llvm/lib/Object/COFFObjectFile.cpp +++ b/llvm/lib/Object/COFFObjectFile.cpp @@ -994,12 +994,11 @@ std::error_code COFFObjectFile::getSection(int32_t Index, std::error_code COFFObjectFile::getSection(StringRef SectionName, const coff_section *&Result) const { Result = nullptr; + StringRef SecName; for (const SectionRef &Section : sections()) { - auto NameOrErr = Section.getName(); - if (!NameOrErr) - return errorToErrorCode(NameOrErr.takeError()); - - if (*NameOrErr == SectionName) { + if (std::error_code E = Section.getName(SecName)) + return E; + if (SecName == SectionName) { Result = getCOFFSection(Section); return std::error_code(); } diff --git a/llvm/lib/Object/Decompressor.cpp b/llvm/lib/Object/Decompressor.cpp index 11efd857d1a..53b8e846e5f 100644 --- a/llvm/lib/Object/Decompressor.cpp +++ b/llvm/lib/Object/Decompressor.cpp @@ -77,15 +77,10 @@ bool Decompressor::isGnuStyle(StringRef Name) { } bool Decompressor::isCompressed(const object::SectionRef &Section) { - if (Section.isCompressed()) - return true; - - Expected<StringRef> SecNameOrErr = Section.getName(); - if (SecNameOrErr) - return isGnuStyle(*SecNameOrErr); - - consumeError(SecNameOrErr.takeError()); - return false; + StringRef Name; + if (Section.getName(Name)) + return false; + return Section.isCompressed() || isGnuStyle(Name); } bool Decompressor::isCompressedELFSection(uint64_t Flags, StringRef Name) { diff --git a/llvm/lib/Object/ELFObjectFile.cpp b/llvm/lib/Object/ELFObjectFile.cpp index f3b0347088a..9945018d957 100644 --- a/llvm/lib/Object/ELFObjectFile.cpp +++ b/llvm/lib/Object/ELFObjectFile.cpp @@ -392,13 +392,9 @@ ELFObjectFileBase::getPltAddresses() const { return {}; Optional<SectionRef> Plt = None, RelaPlt = None, GotPlt = None; for (const SectionRef &Section : sections()) { - Expected<StringRef> NameOrErr = Section.getName(); - if (!NameOrErr) { - consumeError(NameOrErr.takeError()); + StringRef Name; + if (Section.getName(Name)) continue; - } - StringRef Name = *NameOrErr; - if (Name == ".plt") Plt = Section; else if (Name == ".rela.plt" || Name == ".rel.plt") diff --git a/llvm/lib/Object/MachOObjectFile.cpp b/llvm/lib/Object/MachOObjectFile.cpp index 179166ddbd3..3bfbfe06944 100644 --- a/llvm/lib/Object/MachOObjectFile.cpp +++ b/llvm/lib/Object/MachOObjectFile.cpp @@ -1986,12 +1986,13 @@ Expected<SectionRef> MachOObjectFile::getSection(unsigned SectionIndex) const { } Expected<SectionRef> MachOObjectFile::getSection(StringRef SectionName) const { + StringRef SecName; for (const SectionRef &Section : sections()) { - auto NameOrErr = Section.getName(); - if (!NameOrErr) - return NameOrErr.takeError(); - if (*NameOrErr == SectionName) + if (std::error_code E = Section.getName(SecName)) + return errorCodeToError(E); + if (SecName == SectionName) { return Section; + } } return errorCodeToError(object_error::parse_failed); } @@ -3994,11 +3995,7 @@ BindRebaseSegInfo::BindRebaseSegInfo(const object::MachOObjectFile *Obj) { uint64_t CurSegAddress; for (const SectionRef &Section : Obj->sections()) { SectionInfo Info; - Expected<StringRef> NameOrErr = Section.getName(); - if (!NameOrErr) - consumeError(NameOrErr.takeError()); - else - Info.SectionName = *NameOrErr; + Section.getName(Info.SectionName); Info.Address = Section.getAddress(); Info.Size = Section.getSize(); Info.SegmentName = diff --git a/llvm/lib/Object/Object.cpp b/llvm/lib/Object/Object.cpp index b518e2d02c9..d84798cc6dd 100644 --- a/llvm/lib/Object/Object.cpp +++ b/llvm/lib/Object/Object.cpp @@ -251,10 +251,10 @@ void LLVMMoveToNextSymbol(LLVMSymbolIteratorRef SI) { // SectionRef accessors const char *LLVMGetSectionName(LLVMSectionIteratorRef SI) { - auto NameOrErr = (*unwrap(SI))->getName(); - if (!NameOrErr) - report_fatal_error(NameOrErr.takeError()); - return NameOrErr->data(); + StringRef ret; + if (std::error_code ec = (*unwrap(SI))->getName(ret)) + report_fatal_error(ec.message()); + return ret.data(); } uint64_t LLVMGetSectionSize(LLVMSectionIteratorRef SI) { |