From 065344dfd5a7b3502098810b981eb0077e5d81f3 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sun, 6 May 2007 23:45:49 +0000 Subject: use the new MemoryBuffer interfaces to simplify error reporting in clients. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36900 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/bugpoint/BugDriver.cpp | 9 +++++---- tools/llc/llc.cpp | 6 +----- tools/lli/lli.cpp | 6 +----- tools/llvm-dis/llvm-dis.cpp | 11 ++++------- tools/llvm-extract/llvm-extract.cpp | 3 +-- tools/llvm-link/llvm-link.cpp | 10 ++++------ tools/llvm-nm/llvm-nm.cpp | 2 +- tools/llvm-prof/llvm-prof.cpp | 10 ++++------ tools/llvm2cpp/llvm2cpp.cpp | 4 +--- tools/llvmc/CompilerDriver.cpp | 3 +-- tools/opt/opt.cpp | 11 ++++------- 11 files changed, 27 insertions(+), 48 deletions(-) diff --git a/tools/bugpoint/BugDriver.cpp b/tools/bugpoint/BugDriver.cpp index 00dfc32774..7ce1e68943 100644 --- a/tools/bugpoint/BugDriver.cpp +++ b/tools/bugpoint/BugDriver.cpp @@ -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 Buffer( - MemoryBuffer::getFileOrSTDIN(&InputFilename[0], InputFilename.size())); +Module *llvm::ParseInputFile(const std::string &Filename) { + std::auto_ptr 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 &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"; diff --git a/tools/llc/llc.cpp b/tools/llc/llc.cpp index 052242054c..8797c58ce8 100644 --- a/tools/llc/llc.cpp +++ b/tools/llc/llc.cpp @@ -179,14 +179,10 @@ int main(int argc, char **argv) { std::string ErrorMessage; std::auto_ptr M; - { std::auto_ptr 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"; diff --git a/tools/lli/lli.cpp b/tools/lli/lli.cpp index a1caf1172d..fdb5f4aa39 100644 --- a/tools/lli/lli.cpp +++ b/tools/lli/lli.cpp @@ -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; } diff --git a/tools/llvm-dis/llvm-dis.cpp b/tools/llvm-dis/llvm-dis.cpp index 6321551446..97ec4c7306 100644 --- a/tools/llvm-dis/llvm-dis.cpp +++ b/tools/llvm-dis/llvm-dis.cpp @@ -54,14 +54,11 @@ int main(int argc, char **argv) { std::auto_ptr 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] << ": "; diff --git a/tools/llvm-extract/llvm-extract.cpp b/tools/llvm-extract/llvm-extract.cpp index 97c45f6dcc..441063848c 100644 --- a/tools/llvm-extract/llvm-extract.cpp +++ b/tools/llvm-extract/llvm-extract.cpp @@ -57,8 +57,7 @@ int main(int argc, char **argv) { std::auto_ptr M; - MemoryBuffer *Buffer = MemoryBuffer::getFileOrSTDIN(&InputFilename[0], - InputFilename.size()); + MemoryBuffer *Buffer = MemoryBuffer::getFileOrSTDIN(InputFilename); if (Buffer == 0) { cerr << "Error reading file '" + InputFilename + "'"; return 1; diff --git a/tools/llvm-link/llvm-link.cpp b/tools/llvm-link/llvm-link.cpp index b19213a6fa..28be3a97f3 100644 --- a/tools/llvm-link/llvm-link.cpp +++ b/tools/llvm-link/llvm-link.cpp @@ -58,13 +58,11 @@ static inline std::auto_ptr 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(Result); // Load successful! if (Verbose) { diff --git a/tools/llvm-nm/llvm-nm.cpp b/tools/llvm-nm/llvm-nm.cpp index c4aa7baf43..e0013999e6 100644 --- a/tools/llvm-nm/llvm-nm.cpp +++ b/tools/llvm-nm/llvm-nm.cpp @@ -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 Buffer( - MemoryBuffer::getFileOrSTDIN(&Filename[0], Filename.size())); + MemoryBuffer::getFileOrSTDIN(Filename, &ErrorMessage)); Module *Result = 0; if (Buffer.get()) Result = ParseBitcodeFile(Buffer.get(), &ErrorMessage); diff --git a/tools/llvm-prof/llvm-prof.cpp b/tools/llvm-prof/llvm-prof.cpp index 106eed8c3f..f88f1fcc02 100644 --- a/tools/llvm-prof/llvm-prof.cpp +++ b/tools/llvm-prof/llvm-prof.cpp @@ -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"; diff --git a/tools/llvm2cpp/llvm2cpp.cpp b/tools/llvm2cpp/llvm2cpp.cpp index 7a4460282d..d4382cd5ce 100644 --- a/tools/llvm2cpp/llvm2cpp.cpp +++ b/tools/llvm2cpp/llvm2cpp.cpp @@ -52,11 +52,9 @@ int main(int argc, char **argv) { std::auto_ptr M; std::auto_ptr 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()) diff --git a/tools/llvmc/CompilerDriver.cpp b/tools/llvmc/CompilerDriver.cpp index 2f94ee84c7..b170270b0c 100644 --- a/tools/llvmc/CompilerDriver.cpp +++ b/tools/llvmc/CompilerDriver.cpp @@ -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; } diff --git a/tools/opt/opt.cpp b/tools/opt/opt.cpp index 4ef1a6e39c..14e02d0e46 100644 --- a/tools/opt/opt.cpp +++ b/tools/opt/opt.cpp @@ -260,15 +260,12 @@ int main(int argc, char **argv) { // Load the input module... std::auto_ptr 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()) -- cgit v1.2.3