]> granicus.if.org Git - clang/commitdiff
Bitcode: Change module reader functions to return an llvm::Expected.
authorPeter Collingbourne <peter@pcc.me.uk>
Sun, 13 Nov 2016 07:00:17 +0000 (07:00 +0000)
committerPeter Collingbourne <peter@pcc.me.uk>
Sun, 13 Nov 2016 07:00:17 +0000 (07:00 +0000)
Differential Revision: https://reviews.llvm.org/D26562

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@286752 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CGOpenMPRuntime.cpp
lib/CodeGen/CodeGenAction.cpp

index 89c5955f491f5cad6a59c2005d78533580f2f9f2..6e663bb46bb5d4e6c9a3f01ce1bd166c614800d8 100644 (file)
@@ -3012,7 +3012,8 @@ void CGOpenMPRuntime::loadOffloadInfoMetadata() {
     return;
 
   llvm::LLVMContext C;
-  auto ME = llvm::parseBitcodeFile(Buf.get()->getMemBufferRef(), C);
+  auto ME = expectedToErrorOrAndEmitErrors(
+      C, llvm::parseBitcodeFile(Buf.get()->getMemBufferRef(), C));
 
   if (ME.getError())
     return;
index 8ffe9d4b5e44927bc1da8e76310fad246ca1046b..5d8252bc3bb977de0f57245fc70aff1a9d47b0b8 100644 (file)
@@ -771,11 +771,13 @@ CodeGenAction::CreateASTConsumer(CompilerInstance &CI, StringRef InFile) {
         return nullptr;
       }
 
-      ErrorOr<std::unique_ptr<llvm::Module>> ModuleOrErr =
+      Expected<std::unique_ptr<llvm::Module>> ModuleOrErr =
           getOwningLazyBitcodeModule(std::move(*BCBuf), *VMContext);
-      if (std::error_code EC = ModuleOrErr.getError()) {
-        CI.getDiagnostics().Report(diag::err_cannot_open_file) << LinkBCFile
-                                                               << EC.message();
+      if (!ModuleOrErr) {
+        handleAllErrors(ModuleOrErr.takeError(), [&](ErrorInfoBase &EIB) {
+          CI.getDiagnostics().Report(diag::err_cannot_open_file)
+              << LinkBCFile << EIB.message();
+        });
         LinkModules.clear();
         return nullptr;
       }