From 08d9d017a857f93850ca7f384e8e4d175d842262 Mon Sep 17 00:00:00 2001
From: Zuzana Baranova <xbaranov@fi.muni.cz>
Date: Sun, 11 Nov 2018 18:40:41 +0000
Subject: [PATCH] tools: Check the return value when fetching module so that
 debug builds work.

---
 tools/divcc.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/tools/divcc.cpp b/tools/divcc.cpp
index e29f3c7ab..8c0c2b3f2 100644
--- a/tools/divcc.cpp
+++ b/tools/divcc.cpp
@@ -150,7 +150,10 @@ std::unique_ptr< llvm::Module > llvmExtract( PairedFiles& files, cc::CC1& clang
         auto bc = llvm::object::IRObjectFile::findBitcodeInMemBuffer( (*buf.get()).getMemBufferRef() );
         if ( !bc ) std::cerr << "No .llvmbc section found in file " << file.second << "." << std::endl;
 
-        std::unique_ptr< llvm::Module > m = std::move( llvm::parseBitcodeFile( bc.get(), *clang.context().get()).get() );
+        auto expected_m = llvm::parseBitcodeFile( bc.get(), *clang.context().get() );
+        if ( !expected_m )
+            std::cerr << "Error parsing bitcode." << std::endl;
+        auto m = std::move( expected_m.get() );
         m->setTargetTriple( "x86_64-unknown-none-elf" );
         verifyModule( *m );
         drv->link( std::move( m ) );
-- 
GitLab