diff options
author | Peter Collingbourne <peter@pcc.me.uk> | 2016-11-13 07:00:17 +0000 |
---|---|---|
committer | Peter Collingbourne <peter@pcc.me.uk> | 2016-11-13 07:00:17 +0000 |
commit | dead081fb270405507bf3a0a37413a3b54c1fbe0 (patch) | |
tree | ec848683502041e95c5c0579d0c93f0820032258 /lib/IRReader | |
parent | b0c36f7ca74e027fbe55a8d1afc27cbaa30ddc21 (diff) |
Bitcode: Change module reader functions to return an llvm::Expected.
Differential Revision: https://reviews.llvm.org/D26562
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286752 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/IRReader')
-rw-r--r-- | lib/IRReader/IRReader.cpp | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/lib/IRReader/IRReader.cpp b/lib/IRReader/IRReader.cpp index c6ad3129799..cb29a2552ea 100644 --- a/lib/IRReader/IRReader.cpp +++ b/lib/IRReader/IRReader.cpp @@ -34,11 +34,13 @@ getLazyIRModule(std::unique_ptr<MemoryBuffer> Buffer, SMDiagnostic &Err, LLVMContext &Context, bool ShouldLazyLoadMetadata) { if (isBitcode((const unsigned char *)Buffer->getBufferStart(), (const unsigned char *)Buffer->getBufferEnd())) { - ErrorOr<std::unique_ptr<Module>> ModuleOrErr = getOwningLazyBitcodeModule( + Expected<std::unique_ptr<Module>> ModuleOrErr = getOwningLazyBitcodeModule( std::move(Buffer), Context, ShouldLazyLoadMetadata); - if (std::error_code EC = ModuleOrErr.getError()) { - Err = SMDiagnostic(Buffer->getBufferIdentifier(), SourceMgr::DK_Error, - EC.message()); + if (Error E = ModuleOrErr.takeError()) { + handleAllErrors(std::move(E), [&](ErrorInfoBase &EIB) { + Err = SMDiagnostic(Buffer->getBufferIdentifier(), SourceMgr::DK_Error, + EIB.message()); + }); return nullptr; } return std::move(ModuleOrErr.get()); @@ -69,11 +71,13 @@ std::unique_ptr<Module> llvm::parseIR(MemoryBufferRef Buffer, SMDiagnostic &Err, TimePassesIsEnabled); if (isBitcode((const unsigned char *)Buffer.getBufferStart(), (const unsigned char *)Buffer.getBufferEnd())) { - ErrorOr<std::unique_ptr<Module>> ModuleOrErr = + Expected<std::unique_ptr<Module>> ModuleOrErr = parseBitcodeFile(Buffer, Context); - if (std::error_code EC = ModuleOrErr.getError()) { - Err = SMDiagnostic(Buffer.getBufferIdentifier(), SourceMgr::DK_Error, - EC.message()); + if (Error E = ModuleOrErr.takeError()) { + handleAllErrors(std::move(E), [&](ErrorInfoBase &EIB) { + Err = SMDiagnostic(Buffer.getBufferIdentifier(), SourceMgr::DK_Error, + EIB.message()); + }); return nullptr; } return std::move(ModuleOrErr.get()); |