Changes to get some meaningful feedback from the bytecode reader.  At some point this stuff should all be exception driven, but for now it is not.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@970 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/llvm-link/llvm-link.cpp b/tools/llvm-link/llvm-link.cpp
index cdd5434..0ae3922 100644
--- a/tools/llvm-link/llvm-link.cpp
+++ b/tools/llvm-link/llvm-link.cpp
@@ -33,26 +33,30 @@
   assert(InputFilenames.size() > 0 && "OneOrMore is not working");
 
   // TODO: TEST argv[0]
-  
-
+  string ErrorMessage;
+    
   if (Verbose) cerr << "Loading '" << InputFilenames[0] << "'\n";
-  std::auto_ptr<Module> Composite(ParseBytecodeFile(InputFilenames[0]));
+  std::auto_ptr<Module> Composite(ParseBytecodeFile(InputFilenames[0],
+                                                    &ErrorMessage));
   if (Composite.get() == 0) {
-    cerr << "Error opening bytecode file: '" << InputFilenames[0] << "'\n";
+    cerr << "Error opening bytecode file: '" << InputFilenames[0] << "'";
+    if (ErrorMessage.size()) cerr << ": " << ErrorMessage;
+    cerr << endl;
     return 1;
   }
 
   for (unsigned i = 1; i < InputFilenames.size(); ++i) {
   if (Verbose) cerr << "Loading '" << InputFilenames[i] << "'\n";
-    auto_ptr<Module> M(ParseBytecodeFile(InputFilenames[i]));
+    auto_ptr<Module> M(ParseBytecodeFile(InputFilenames[i], &ErrorMessage));
     if (M.get() == 0) {
-      cerr << "Error opening bytecode file: '" << InputFilenames[i] << "'\n";
+      cerr << "Error opening bytecode file: '" << InputFilenames[i] << "'";
+      if (ErrorMessage.size()) cerr << ": " << ErrorMessage;
+      cerr << endl;
       return 1;
     }
 
     if (Verbose) cerr << "Linking in '" << InputFilenames[i] << "'\n";
 
-    string ErrorMessage;
     if (LinkModules(Composite.get(), M.get(), &ErrorMessage)) {
       cerr << "Error linking in '" << InputFilenames[i] << "': "
 	   << ErrorMessage << endl;