@@ -31,6 +31,7 @@ SPDX-License-Identifier: MIT
3131#include < string>
3232#include < list>
3333#include < fstream>
34+ #include < sstream>
3435
3536using namespace std ;
3637using namespace llvm ;
@@ -63,18 +64,38 @@ int main(int argc, char *argv[]) {
6364 std::unique_ptr<llvm::MemoryBuffer> genericBufferPtr (FileOrErr.get ().release ());
6465 Expected<std::unique_ptr<Module>> M = llvm::parseBitcodeFile (genericBufferPtr->getMemBufferRef (), Context);
6566 if (llvm::Error EC = M.takeError ()) {
66- Err.print (" Unable to Parse bitcode" , errs ());
67+ std::stringstream stringBuilder (" " );
68+ stringBuilder << " [BiFManager] - Unable to Parse bitcode:" ;
69+ llvm::handleAllErrors (std::move (EC),
70+ [&](llvm::ErrorInfoBase &EIB) {
71+ stringBuilder << EIB.message ();
72+ });
73+ Err.print (stringBuilder.str ().c_str (), errs ());
6774 }
6875 return M;
6976 };
70- printf (" [BiFManager] - Start loading modules\n " );
71-
7277 auto ModuleMain = LoadModule (&InputBCFilename);
73- printf (" [BiFManager] - Loaded Main module\n " );
78+ if (ModuleMain)
79+ printf (" [BiFManager] - Loaded Main module\n " );
80+ else {
81+ printf (" [BiFManager] - Problem with loading Main module\n " );
82+ return -13 ;
83+ }
84+
7485 auto Module32 = LoadModule (&InputBC32Filename);
75- printf (" [BiFManager] - Loaded Size32 module\n " );
86+ if (Module32)
87+ printf (" [BiFManager] - Loaded Size32 module\n " );
88+ else {
89+ printf (" [BiFManager] - Problem with loading Size32 module\n " );
90+ return -13 ;
91+ }
7692 auto Module64 = LoadModule (&InputBC64Filename);
77- printf (" [BiFManager] - Loaded Size64 module\n " );
93+ if (Module64)
94+ printf (" [BiFManager] - Loaded Size64 module\n " );
95+ else {
96+ printf (" [BiFManager] - Problem with loading Size64 module\n " );
97+ return -13 ;
98+ }
7899
79100 IGC::BiFManager::BiFManagerTool bif (Context);
80101 bif.MakeBiFPackage (&(*ModuleMain.get ()), &(*Module32.get ()), &(*Module64.get ()));
0 commit comments