diff options
Diffstat (limited to 'llvm/tools/llvm-objcopy/COFF/Reader.cpp')
| -rw-r--r-- | llvm/tools/llvm-objcopy/COFF/Reader.cpp | 19 | 
1 files changed, 11 insertions, 8 deletions
diff --git a/llvm/tools/llvm-objcopy/COFF/Reader.cpp b/llvm/tools/llvm-objcopy/COFF/Reader.cpp index 7be9cce2be3d..d1beacb3bd67 100644 --- a/llvm/tools/llvm-objcopy/COFF/Reader.cpp +++ b/llvm/tools/llvm-objcopy/COFF/Reader.cpp @@ -45,9 +45,9 @@ Error COFFReader::readExecutableHeaders(Object &Obj) const {    }    for (size_t I = 0; I < Obj.PeHeader.NumberOfRvaAndSize; I++) { -    const data_directory *Dir; -    if (auto EC = COFFObj.getDataDirectory(I, Dir)) -      return errorCodeToError(EC); +    const data_directory *Dir = COFFObj.getDataDirectory(I); +    if (!Dir) +      return errorCodeToError(object_error::parse_failed);      Obj.DataDirectories.emplace_back(*Dir);    }    return Error::success(); @@ -57,9 +57,10 @@ Error COFFReader::readSections(Object &Obj) const {    std::vector<Section> Sections;    // Section indexing starts from 1.    for (size_t I = 1, E = COFFObj.getNumberOfSections(); I <= E; I++) { -    const coff_section *Sec; -    if (auto EC = COFFObj.getSection(I, Sec)) -      return errorCodeToError(EC); +    Expected<const coff_section *> SecOrErr = COFFObj.getSection(I); +    if (!SecOrErr) +      return SecOrErr.takeError(); +    const coff_section *Sec = *SecOrErr;      Sections.push_back(Section());      Section &S = Sections.back();      S.Header = *Sec; @@ -99,8 +100,10 @@ Error COFFReader::readSymbols(Object &Obj, bool IsBigObj) const {      else        copySymbol(Sym.Sym,                   *reinterpret_cast<const coff_symbol16 *>(SymRef.getRawPtr())); -    if (auto EC = COFFObj.getSymbolName(SymRef, Sym.Name)) -      return errorCodeToError(EC); +    auto NameOrErr = COFFObj.getSymbolName(SymRef); +    if (!NameOrErr) +      return NameOrErr.takeError(); +    Sym.Name = *NameOrErr;      ArrayRef<uint8_t> AuxData = COFFObj.getSymbolAuxData(SymRef);      size_t SymSize = IsBigObj ? sizeof(coff_symbol32) : sizeof(coff_symbol16);  | 
