diff options
Diffstat (limited to 'llvm/lib/Object')
-rw-r--r-- | llvm/lib/Object/COFFObjectFile.cpp | 20 | ||||
-rw-r--r-- | llvm/lib/Object/MachOObjectFile.cpp | 11 | ||||
-rw-r--r-- | llvm/lib/Object/ObjectFile.cpp | 5 | ||||
-rw-r--r-- | llvm/lib/Object/WasmObjectFile.cpp | 12 | ||||
-rw-r--r-- | llvm/lib/Object/XCOFFObjectFile.cpp | 8 |
5 files changed, 23 insertions, 33 deletions
diff --git a/llvm/lib/Object/COFFObjectFile.cpp b/llvm/lib/Object/COFFObjectFile.cpp index d52206d8cd3..ccb861cb187 100644 --- a/llvm/lib/Object/COFFObjectFile.cpp +++ b/llvm/lib/Object/COFFObjectFile.cpp @@ -269,10 +269,9 @@ void COFFObjectFile::moveSectionNext(DataRefImpl &Ref) const { Ref.p = reinterpret_cast<uintptr_t>(Sec); } -std::error_code COFFObjectFile::getSectionName(DataRefImpl Ref, - StringRef &Result) const { +Expected<StringRef> COFFObjectFile::getSectionName(DataRefImpl Ref) const { const coff_section *Sec = toSec(Ref); - return getSectionName(Sec, Result); + return getSectionName(Sec); } uint64_t COFFObjectFile::getSectionAddress(DataRefImpl Ref) const { @@ -1074,8 +1073,8 @@ uint32_t COFFObjectFile::getSymbolIndex(COFFSymbolRef Symbol) const { return Index; } -std::error_code COFFObjectFile::getSectionName(const coff_section *Sec, - StringRef &Res) const { +Expected<StringRef> +COFFObjectFile::getSectionName(const coff_section *Sec) const { StringRef Name; if (Sec->Name[COFF::NameSize - 1] == 0) // Null terminated, let ::strlen figure out the length. @@ -1089,17 +1088,18 @@ std::error_code COFFObjectFile::getSectionName(const coff_section *Sec, uint32_t Offset; if (Name.startswith("//")) { if (decodeBase64StringEntry(Name.substr(2), Offset)) - return object_error::parse_failed; + return createStringError(object_error::parse_failed, + "inalid section name"); } else { if (Name.substr(1).getAsInteger(10, Offset)) - return object_error::parse_failed; + return createStringError(object_error::parse_failed, + "invalid section name"); } if (std::error_code EC = getString(Offset, Name)) - return EC; + return errorCodeToError(EC); } - Res = Name; - return std::error_code(); + return Name; } uint64_t COFFObjectFile::getSectionSize(const coff_section *Sec) const { diff --git a/llvm/lib/Object/MachOObjectFile.cpp b/llvm/lib/Object/MachOObjectFile.cpp index 8be287c5f9e..1aa57bbbc76 100644 --- a/llvm/lib/Object/MachOObjectFile.cpp +++ b/llvm/lib/Object/MachOObjectFile.cpp @@ -1863,11 +1863,9 @@ void MachOObjectFile::moveSectionNext(DataRefImpl &Sec) const { Sec.d.a++; } -std::error_code MachOObjectFile::getSectionName(DataRefImpl Sec, - StringRef &Result) const { +Expected<StringRef> MachOObjectFile::getSectionName(DataRefImpl Sec) const { ArrayRef<char> Raw = getSectionRawName(Sec); - Result = parseSegmentOrSectionName(Raw.data()); - return std::error_code(); + return parseSegmentOrSectionName(Raw.data()); } uint64_t MachOObjectFile::getSectionAddress(DataRefImpl Sec) const { @@ -2000,9 +1998,8 @@ bool MachOObjectFile::isSectionVirtual(DataRefImpl Sec) const { bool MachOObjectFile::isSectionBitcode(DataRefImpl Sec) const { StringRef SegmentName = getSectionFinalSegmentName(Sec); - StringRef SectName; - if (!getSectionName(Sec, SectName)) - return (SegmentName == "__LLVM" && SectName == "__bitcode"); + if (Expected<StringRef> NameOrErr = getSectionName(Sec)) + return (SegmentName == "__LLVM" && *NameOrErr == "__bitcode"); return false; } diff --git a/llvm/lib/Object/ObjectFile.cpp b/llvm/lib/Object/ObjectFile.cpp index 081e29c21b6..cc0b282665d 100644 --- a/llvm/lib/Object/ObjectFile.cpp +++ b/llvm/lib/Object/ObjectFile.cpp @@ -68,9 +68,8 @@ std::error_code ObjectFile::printSymbolName(raw_ostream &OS, uint32_t ObjectFile::getSymbolAlignment(DataRefImpl DRI) const { return 0; } bool ObjectFile::isSectionBitcode(DataRefImpl Sec) const { - StringRef SectName; - if (!getSectionName(Sec, SectName)) - return SectName == ".llvmbc"; + if (Expected<StringRef> NameOrErr = getSectionName(Sec)) + return *NameOrErr == ".llvmbc"; return false; } diff --git a/llvm/lib/Object/WasmObjectFile.cpp b/llvm/lib/Object/WasmObjectFile.cpp index 45e343f8f47..1c56ee6652a 100644 --- a/llvm/lib/Object/WasmObjectFile.cpp +++ b/llvm/lib/Object/WasmObjectFile.cpp @@ -1389,13 +1389,11 @@ WasmObjectFile::getSymbolSection(DataRefImpl Symb) const { void WasmObjectFile::moveSectionNext(DataRefImpl &Sec) const { Sec.d.a++; } -std::error_code WasmObjectFile::getSectionName(DataRefImpl Sec, - StringRef &Res) const { +Expected<StringRef> WasmObjectFile::getSectionName(DataRefImpl Sec) const { const WasmSection &S = Sections[Sec.d.a]; #define ECase(X) \ case wasm::WASM_SEC_##X: \ - Res = #X; \ - break + return #X; switch (S.Type) { ECase(TYPE); ECase(IMPORT); @@ -1411,13 +1409,11 @@ std::error_code WasmObjectFile::getSectionName(DataRefImpl Sec, ECase(DATA); ECase(DATACOUNT); case wasm::WASM_SEC_CUSTOM: - Res = S.Name; - break; + return S.Name; default: - return object_error::invalid_section_index; + return createStringError(object_error::invalid_section_index, ""); } #undef ECase - return std::error_code(); } uint64_t WasmObjectFile::getSectionAddress(DataRefImpl Sec) const { return 0; } diff --git a/llvm/lib/Object/XCOFFObjectFile.cpp b/llvm/lib/Object/XCOFFObjectFile.cpp index e74085575a6..bc982593f0b 100644 --- a/llvm/lib/Object/XCOFFObjectFile.cpp +++ b/llvm/lib/Object/XCOFFObjectFile.cpp @@ -119,14 +119,12 @@ void XCOFFObjectFile::moveSectionNext(DataRefImpl &Sec) const { Sec.p = reinterpret_cast<uintptr_t>(Ptr + getSectionHeaderSize()); } -std::error_code XCOFFObjectFile::getSectionName(DataRefImpl Sec, - StringRef &Res) const { +Expected<StringRef> XCOFFObjectFile::getSectionName(DataRefImpl Sec) const { const char *Name = toSection(Sec)->Name; auto NulCharPtr = static_cast<const char *>(memchr(Name, '\0', XCOFF::SectionNameSize)); - Res = NulCharPtr ? StringRef(Name, NulCharPtr - Name) - : StringRef(Name, XCOFF::SectionNameSize); - return std::error_code(); + return NulCharPtr ? StringRef(Name, NulCharPtr - Name) + : StringRef(Name, XCOFF::SectionNameSize); } uint64_t XCOFFObjectFile::getSectionAddress(DataRefImpl Sec) const { |