From 8f31e213e425a3cab12b37941b5102533fc8ddbe Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Wed, 15 Jan 2014 01:08:23 +0000 Subject: Make parseBitcodeFile return an ErrorOr. llvm-svn: 199279 --- llvm/lib/IRReader/IRReader.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'llvm/lib/IRReader/IRReader.cpp') diff --git a/llvm/lib/IRReader/IRReader.cpp b/llvm/lib/IRReader/IRReader.cpp index 7356fd005ad..70801c43f1a 100644 --- a/llvm/lib/IRReader/IRReader.cpp +++ b/llvm/lib/IRReader/IRReader.cpp @@ -69,12 +69,14 @@ Module *llvm::ParseIR(MemoryBuffer *Buffer, SMDiagnostic &Err, TimePassesIsEnabled); if (isBitcode((const unsigned char *)Buffer->getBufferStart(), (const unsigned char *)Buffer->getBufferEnd())) { - std::string ErrMsg; - Module *M = ParseBitcodeFile(Buffer, Context, &ErrMsg); - if (M == 0) + ErrorOr ModuleOrErr = parseBitcodeFile(Buffer, Context); + Module *M = 0; + if (error_code EC = ModuleOrErr.getError()) Err = SMDiagnostic(Buffer->getBufferIdentifier(), SourceMgr::DK_Error, - ErrMsg); - // ParseBitcodeFile does not take ownership of the Buffer. + EC.message()); + else + M = ModuleOrErr.get(); + // parseBitcodeFile does not take ownership of the Buffer. delete Buffer; return M; } -- cgit v1.2.3