From d9445c49ad47c227f5981ad1f8f211dff9aaa9f1 Mon Sep 17 00:00:00 2001 From: Peter Collingbourne Date: Sun, 13 Nov 2016 07:00:17 +0000 Subject: Bitcode: Change module reader functions to return an llvm::Expected. Differential Revision: https://reviews.llvm.org/D26562 llvm-svn: 286752 --- llvm/lib/IRReader/IRReader.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'llvm/lib/IRReader') diff --git a/llvm/lib/IRReader/IRReader.cpp b/llvm/lib/IRReader/IRReader.cpp index c6ad3129799..cb29a2552ea 100644 --- a/llvm/lib/IRReader/IRReader.cpp +++ b/llvm/lib/IRReader/IRReader.cpp @@ -34,11 +34,13 @@ getLazyIRModule(std::unique_ptr Buffer, SMDiagnostic &Err, LLVMContext &Context, bool ShouldLazyLoadMetadata) { if (isBitcode((const unsigned char *)Buffer->getBufferStart(), (const unsigned char *)Buffer->getBufferEnd())) { - ErrorOr> ModuleOrErr = getOwningLazyBitcodeModule( + Expected> 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 llvm::parseIR(MemoryBufferRef Buffer, SMDiagnostic &Err, TimePassesIsEnabled); if (isBitcode((const unsigned char *)Buffer.getBufferStart(), (const unsigned char *)Buffer.getBufferEnd())) { - ErrorOr> ModuleOrErr = + Expected> 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()); -- cgit v1.2.3