use the new MemoryBuffer interfaces to simplify error reporting in clients.
authorChris Lattner <sabre@nondot.org>
Sun, 6 May 2007 23:45:49 +0000 (23:45 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 6 May 2007 23:45:49 +0000 (23:45 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36900 91177308-0d34-0410-b5e6-96231b3b80d8

tools/bugpoint/BugDriver.cpp
tools/llc/llc.cpp
tools/lli/lli.cpp
tools/llvm-dis/llvm-dis.cpp
tools/llvm-extract/llvm-extract.cpp
tools/llvm-link/llvm-link.cpp
tools/llvm-nm/llvm-nm.cpp
tools/llvm-prof/llvm-prof.cpp
tools/llvm2cpp/llvm2cpp.cpp
tools/llvmc/CompilerDriver.cpp
tools/opt/opt.cpp

index 00dfc32774a58aa9edc5b4b352cbfc99420202b7..7ce1e689431a613bb5a7c5bb9174c3804a71ad7a 100644 (file)
@@ -72,18 +72,18 @@ BugDriver::BugDriver(const char *toolname, bool as_child, bool find_bugs,
 /// ParseInputFile - Given a bytecode or assembly input filename, parse and
 /// return it, or return null if not possible.
 ///
-Module *llvm::ParseInputFile(const std::string &InputFilename) {
-  std::auto_ptr<MemoryBuffer> Buffer(
-       MemoryBuffer::getFileOrSTDIN(&InputFilename[0], InputFilename.size()));
+Module *llvm::ParseInputFile(const std::string &Filename) {
+  std::auto_ptr<MemoryBuffer> Buffer(MemoryBuffer::getFileOrSTDIN(Filename));
   Module *Result = 0;
   if (Buffer.get())
     Result = ParseBitcodeFile(Buffer.get());
   
   ParseError Err;
-  if (!Result && !(Result = ParseAssemblyFile(InputFilename,&Err))) {
+  if (!Result && !(Result = ParseAssemblyFile(Filename, &Err))) {
     std::cerr << "bugpoint: " << Err.getMessage() << "\n"; 
     Result = 0;
   }
+  
   return Result;
 }
 
@@ -100,6 +100,7 @@ bool BugDriver::addSources(const std::vector<std::string> &Filenames) {
     // Load the first input file.
     Program = ParseInputFile(Filenames[0]);
     if (Program == 0) return true;
+    
     if (!run_as_child)
       std::cout << "Read input file      : '" << Filenames[0] << "'\n";
 
index 052242054c40351c3c92573b4e9df21e5ceabb41..8797c58ce8fa85326d664a180d89329a7201984b 100644 (file)
@@ -179,14 +179,10 @@ int main(int argc, char **argv) {
   std::string ErrorMessage;
   std::auto_ptr<Module> M;
   
-  {
   std::auto_ptr<MemoryBuffer> Buffer(
-       MemoryBuffer::getFileOrSTDIN(&InputFilename[0], InputFilename.size()));
+                   MemoryBuffer::getFileOrSTDIN(InputFilename, &ErrorMessage));
   if (Buffer.get())
     M.reset(ParseBitcodeFile(Buffer.get(), &ErrorMessage));
-  else
-    ErrorMessage = "Error reading file '" + InputFilename + "'";
-  }
   if (M.get() == 0) {
     std::cerr << argv[0] << ": bytecode didn't read correctly.\n";
     std::cerr << "Reason: " << ErrorMessage << "\n";
index a1caf1172dbd0a840de1cfed7f0d1c67cbb2e7c8..fdb5f4aa397b162808aae695c42e5fb139f02dfc 100644 (file)
@@ -77,11 +77,7 @@ int main(int argc, char **argv, char * const *envp) {
   // Load the bytecode...
   std::string ErrorMsg;
   ModuleProvider *MP = 0;
-  MemoryBuffer *Buffer = MemoryBuffer::getFileOrSTDIN(&InputFile[0],
-                                                      InputFile.size());
-  if (Buffer == 0)
-    ErrorMsg = "Error reading file '" + InputFile + "'";
-  else {
+  if (MemoryBuffer *Buffer = MemoryBuffer::getFileOrSTDIN(InputFile,&ErrorMsg)){
     MP = getBitcodeModuleProvider(Buffer, &ErrorMsg);
     if (!MP) delete Buffer;
   }
index 6321551446a11417ad477b82d5dd433487c4ebc9..97ec4c7306165f3929d66ac438351163445c103f 100644 (file)
@@ -54,14 +54,11 @@ int main(int argc, char **argv) {
 
     std::auto_ptr<Module> M;
    
-    MemoryBuffer *Buffer
-      = MemoryBuffer::getFileOrSTDIN(&InputFilename[0], InputFilename.size());
-
-    if (Buffer == 0)
-      ErrorMessage = "Error reading file '" + InputFilename + "'";
-    else
+    if (MemoryBuffer *Buffer
+           = MemoryBuffer::getFileOrSTDIN(InputFilename, &ErrorMessage)) {
       M.reset(ParseBitcodeFile(Buffer, &ErrorMessage));
-    delete Buffer;
+      delete Buffer;
+    }
 
     if (M.get() == 0) {
       cerr << argv[0] << ": ";
index 97c45f6dcce045ee89f5931c4a787739a7685ac5..441063848cac3f3acb2275ff256c94e91bdcc044 100644 (file)
@@ -57,8 +57,7 @@ int main(int argc, char **argv) {
 
   std::auto_ptr<Module> M;
   
-  MemoryBuffer *Buffer = MemoryBuffer::getFileOrSTDIN(&InputFilename[0],
-                                                      InputFilename.size());
+  MemoryBuffer *Buffer = MemoryBuffer::getFileOrSTDIN(InputFilename);
   if (Buffer == 0) {
     cerr << "Error reading file '" + InputFilename + "'";
     return 1;
index b19213a6fa507a187d0c23c3ee64b5be63b3f8e9..28be3a97f38ad46cbc5309744dd11c4f26ad47ea 100644 (file)
@@ -58,13 +58,11 @@ static inline std::auto_ptr<Module> LoadFile(const std::string &FN) {
     Module* Result = 0;
     
     const std::string &FNStr = Filename.toString();
-    MemoryBuffer *Buffer = MemoryBuffer::getFileOrSTDIN(&FNStr[0],
-                                                        FNStr.size());
-    if (Buffer == 0)
-      ErrorMessage = "Error reading file '" + FNStr + "'";
-    else
+    if (MemoryBuffer *Buffer = MemoryBuffer::getFileOrSTDIN(FNStr,
+                                                            &ErrorMessage)) {
       Result = ParseBitcodeFile(Buffer, &ErrorMessage);
-    delete Buffer;
+      delete Buffer;
+    }
     if (Result) return std::auto_ptr<Module>(Result);   // Load successful!
 
     if (Verbose) {
index c4aa7baf43ea229442248218587d86fc57dc31bb..e0013999e6eed041fba0b73e2f7b10233616f182 100644 (file)
@@ -124,7 +124,7 @@ static void DumpSymbolNamesFromFile(std::string &Filename) {
   // Note: Currently we do not support reading an archive from stdin.
   if (Filename == "-" || aPath.isBitcodeFile()) {
     std::auto_ptr<MemoryBuffer> Buffer(
-                   MemoryBuffer::getFileOrSTDIN(&Filename[0], Filename.size()));
+                   MemoryBuffer::getFileOrSTDIN(Filename, &ErrorMessage));
     Module *Result = 0;
     if (Buffer.get())
       Result = ParseBitcodeFile(Buffer.get(), &ErrorMessage);
index 106eed8c3f455a15b4808eeea54a218406840599..f88f1fcc02846d040eac6a9193dccc74316e473d 100644 (file)
@@ -118,13 +118,11 @@ int main(int argc, char **argv) {
     // Read in the bytecode file...
     std::string ErrorMessage;
     Module *M;
-    MemoryBuffer *Buffer = MemoryBuffer::getFileOrSTDIN(&BytecodeFile[0],
-                                                        BytecodeFile.size());
-    if (Buffer == 0)
-      ErrorMessage = "Error reading file '" + BytecodeFile + "'";
-    else
+    if (MemoryBuffer *Buffer = MemoryBuffer::getFileOrSTDIN(BytecodeFile,
+                                                            &ErrorMessage)) {
       M = ParseBitcodeFile(Buffer, &ErrorMessage);
-    delete Buffer;
+      delete Buffer;
+    }
     if (M == 0) {
       std::cerr << argv[0] << ": " << BytecodeFile << ": " 
         << ErrorMessage << "\n";
index 7a4460282d74b857dbfad535b74ac1566b8407ce..d4382cd5cee9c36357f3c47b000a49af2add1478 100644 (file)
@@ -52,11 +52,9 @@ int main(int argc, char **argv) {
   
   std::auto_ptr<Module> M;
   std::auto_ptr<MemoryBuffer> Buffer(
-       MemoryBuffer::getFileOrSTDIN(&InputFilename[0], InputFilename.size()));
+       MemoryBuffer::getFileOrSTDIN(InputFilename, &ErrorMessage));
   if (Buffer.get())
     M.reset(ParseBitcodeFile(Buffer.get(), &ErrorMessage));
-  else
-    ErrorMessage = "Error reading file '" + InputFilename + "'";
   if (M.get() == 0) {
     std::cerr << argv[0] << ": ";
     if (ErrorMessage.size())
index 2f94ee84c789cfb3aa1fffad96c764a1a958fac7..b170270b0c77bdc054c790021139b17a559265ea 100644 (file)
@@ -69,8 +69,7 @@ static bool GetBytecodeDependentLibraries(const std::string &fname,
                                           Module::LibraryListType& deplibs,
                                           std::string* ErrMsg) {
   ModuleProvider *MP = 0;
-  if (MemoryBuffer *Buffer = MemoryBuffer::getFileOrSTDIN(&fname[0],
-                                                          fname.size())) {
+  if (MemoryBuffer *Buffer = MemoryBuffer::getFileOrSTDIN(fname)) {
     MP = getBitcodeModuleProvider(Buffer);
     if (MP == 0) delete Buffer;
   }
index 4ef1a6e39c7fdfdbec9b4676dd9c538a90eb2313..14e02d0e467a3de65bee42d95281a4d8e02ef282 100644 (file)
@@ -260,15 +260,12 @@ int main(int argc, char **argv) {
 
     // Load the input module...
     std::auto_ptr<Module> M;
-    MemoryBuffer *Buffer
-      = MemoryBuffer::getFileOrSTDIN(&InputFilename[0], InputFilename.size());
-    
-    if (Buffer == 0)
-      ErrorMessage = "Error reading file '" + InputFilename + "'";
-    else
+    if (MemoryBuffer *Buffer
+          = MemoryBuffer::getFileOrSTDIN(InputFilename, &ErrorMessage)) {
       M.reset(ParseBitcodeFile(Buffer, &ErrorMessage));
+      delete Buffer;
+    }
     
-    delete Buffer;
     if (M.get() == 0) {
       cerr << argv[0] << ": ";
       if (ErrorMessage.size())