summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorMichael J. Spencer <bigcheesegs@gmail.com>2010-12-16 03:29:14 +0000
committerMichael J. Spencer <bigcheesegs@gmail.com>2010-12-16 03:29:14 +0000
commit3ff9563c3e391954b2e224afcf8b2b0fcc3888aa (patch)
treecccde9111a73ba5895f6cefbfb280290fa6c469d /tools
parentb29b20e7deb7297f6a10b2d6922feeca8c6df055 (diff)
downloadllvm-3ff9563c3e391954b2e224afcf8b2b0fcc3888aa.tar.gz
llvm-3ff9563c3e391954b2e224afcf8b2b0fcc3888aa.tar.bz2
llvm-3ff9563c3e391954b2e224afcf8b2b0fcc3888aa.tar.xz
MemoryBuffer now return an error_code and returns a OwningPtr<MemoryBuffer> via an out parm.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121958 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools')
-rw-r--r--tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp10
-rw-r--r--tools/llvm-dis/llvm-dis.cpp9
-rw-r--r--tools/llvm-mc/llvm-mc.cpp23
-rw-r--r--tools/llvm-nm/llvm-nm.cpp6
-rw-r--r--tools/llvm-prof/llvm-prof.cpp6
-rw-r--r--tools/lto/LTOCodeGenerator.cpp6
-rw-r--r--tools/lto/LTOModule.cpp14
-rw-r--r--tools/macho-dump/macho-dump.cpp6
8 files changed, 38 insertions, 42 deletions
diff --git a/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp b/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp
index e6c82a326a..604477e79c 100644
--- a/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp
+++ b/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp
@@ -27,6 +27,7 @@
//
//===----------------------------------------------------------------------===//
+#include "llvm/ADT/OwningPtr.h"
#include "llvm/Analysis/Verifier.h"
#include "llvm/Bitcode/BitstreamReader.h"
#include "llvm/Bitcode/LLVMBitCodes.h"
@@ -58,7 +59,7 @@ static cl::opt<bool> NoHistogram("disable-histogram",
static cl::opt<bool>
NonSymbolic("non-symbolic",
- cl::desc("Emit numberic info in dump even if"
+ cl::desc("Emit numeric info in dump even if"
" symbolic info is available"));
namespace {
@@ -481,11 +482,10 @@ static void PrintSize(uint64_t Bits) {
/// AnalyzeBitcode - Analyze the bitcode file specified by InputFilename.
static int AnalyzeBitcode() {
// Read the input file.
- error_code ec;
- MemoryBuffer *MemBuf =
- MemoryBuffer::getFileOrSTDIN(InputFilename.c_str(), ec);
+ OwningPtr<MemoryBuffer> MemBuf;
- if (MemBuf == 0)
+ if (error_code ec =
+ MemoryBuffer::getFileOrSTDIN(InputFilename.c_str(), MemBuf))
return Error("Error reading '" + InputFilename + "': " + ec.message());
if (MemBuf->getBufferSize() & 3)
diff --git a/tools/llvm-dis/llvm-dis.cpp b/tools/llvm-dis/llvm-dis.cpp
index 781bca95ea..7a72cec753 100644
--- a/tools/llvm-dis/llvm-dis.cpp
+++ b/tools/llvm-dis/llvm-dis.cpp
@@ -81,12 +81,13 @@ int main(int argc, char **argv) {
std::string ErrorMessage;
error_code ec;
std::auto_ptr<Module> M;
+ OwningPtr<MemoryBuffer> BufferPtr;
- if (MemoryBuffer *Buffer = MemoryBuffer::getFileOrSTDIN(InputFilename, ec)) {
- M.reset(ParseBitcodeFile(Buffer, Context, &ErrorMessage));
- delete Buffer;
- } else
+ if (ec = MemoryBuffer::getFileOrSTDIN(InputFilename, BufferPtr))
ErrorMessage = ec.message();
+ else
+ M.reset(ParseBitcodeFile(BufferPtr.get(), Context, &ErrorMessage));
+ MemoryBuffer *Buffer = BufferPtr.take();
if (M.get() == 0) {
errs() << argv[0] << ": ";
diff --git a/tools/llvm-mc/llvm-mc.cpp b/tools/llvm-mc/llvm-mc.cpp
index 6bf4931cac..87082047ee 100644
--- a/tools/llvm-mc/llvm-mc.cpp
+++ b/tools/llvm-mc/llvm-mc.cpp
@@ -168,12 +168,12 @@ static tool_output_file *GetOutputStream() {
}
static int AsLexInput(const char *ProgName) {
- error_code ec;
- MemoryBuffer *Buffer = MemoryBuffer::getFileOrSTDIN(InputFilename, ec);
- if (Buffer == 0) {
+ OwningPtr<MemoryBuffer> BufferPtr;
+ if (error_code ec = MemoryBuffer::getFileOrSTDIN(InputFilename, BufferPtr)) {
errs() << ProgName << ": " << ec.message() << '\n';
return 1;
}
+ MemoryBuffer *Buffer = BufferPtr.take();
SourceMgr SrcMgr;
@@ -281,12 +281,12 @@ static int AssembleInput(const char *ProgName) {
if (!TheTarget)
return 1;
- error_code ec;
- MemoryBuffer *Buffer = MemoryBuffer::getFileOrSTDIN(InputFilename, ec);
- if (Buffer == 0) {
+ OwningPtr<MemoryBuffer> BufferPtr;
+ if (error_code ec = MemoryBuffer::getFileOrSTDIN(InputFilename, BufferPtr)) {
errs() << ProgName << ": " << ec.message() << '\n';
return 1;
}
+ MemoryBuffer *Buffer = BufferPtr.take();
SourceMgr SrcMgr;
@@ -387,9 +387,8 @@ static int DisassembleInput(const char *ProgName, bool Enhanced) {
if (!TheTarget)
return 0;
- error_code ec;
- MemoryBuffer *Buffer = MemoryBuffer::getFileOrSTDIN(InputFilename, ec);
- if (Buffer == 0) {
+ OwningPtr<MemoryBuffer> Buffer;
+ if (error_code ec = MemoryBuffer::getFileOrSTDIN(InputFilename, Buffer)) {
errs() << ProgName << ": " << ec.message() << '\n';
return 1;
}
@@ -400,9 +399,11 @@ static int DisassembleInput(const char *ProgName, bool Enhanced) {
int Res;
if (Enhanced)
- Res = Disassembler::disassembleEnhanced(TripleName, *Buffer, Out->os());
+ Res =
+ Disassembler::disassembleEnhanced(TripleName, *Buffer.take(), Out->os());
else
- Res = Disassembler::disassemble(*TheTarget, TripleName, *Buffer, Out->os());
+ Res = Disassembler::disassemble(*TheTarget, TripleName,
+ *Buffer.take(), Out->os());
// Keep output if no errors.
if (Res == 0) Out->keep();
diff --git a/tools/llvm-nm/llvm-nm.cpp b/tools/llvm-nm/llvm-nm.cpp
index 16615964a3..7daf792c71 100644
--- a/tools/llvm-nm/llvm-nm.cpp
+++ b/tools/llvm-nm/llvm-nm.cpp
@@ -144,10 +144,8 @@ static void DumpSymbolNamesFromFile(std::string &Filename) {
sys::Path aPath(Filename);
// Note: Currently we do not support reading an archive from stdin.
if (Filename == "-" || aPath.isBitcodeFile()) {
- error_code ec;
- std::auto_ptr<MemoryBuffer> Buffer(
- MemoryBuffer::getFileOrSTDIN(Filename, ec));
- if (Buffer.get() == 0)
+ OwningPtr<MemoryBuffer> Buffer;
+ if (error_code ec = MemoryBuffer::getFileOrSTDIN(Filename, Buffer))
ErrorMessage = ec.message();
Module *Result = 0;
if (Buffer.get())
diff --git a/tools/llvm-prof/llvm-prof.cpp b/tools/llvm-prof/llvm-prof.cpp
index aa9cf004c7..9d0b46833b 100644
--- a/tools/llvm-prof/llvm-prof.cpp
+++ b/tools/llvm-prof/llvm-prof.cpp
@@ -264,11 +264,11 @@ int main(int argc, char **argv) {
// Read in the bitcode file...
std::string ErrorMessage;
+ OwningPtr<MemoryBuffer> Buffer;
error_code ec;
Module *M = 0;
- if (MemoryBuffer *Buffer = MemoryBuffer::getFileOrSTDIN(BitcodeFile, ec)) {
- M = ParseBitcodeFile(Buffer, Context, &ErrorMessage);
- delete Buffer;
+ if (!(ec = MemoryBuffer::getFileOrSTDIN(BitcodeFile, Buffer))) {
+ M = ParseBitcodeFile(Buffer.get(), Context, &ErrorMessage);
} else
ErrorMessage = ec.message();
if (M == 0) {
diff --git a/tools/lto/LTOCodeGenerator.cpp b/tools/lto/LTOCodeGenerator.cpp
index d49e6a77b3..439bac19f6 100644
--- a/tools/lto/LTOCodeGenerator.cpp
+++ b/tools/lto/LTOCodeGenerator.cpp
@@ -224,10 +224,10 @@ const void* LTOCodeGenerator::compile(size_t* length, std::string& errMsg)
delete _nativeObjectFile;
// read .o file into memory buffer
- error_code ec;
- _nativeObjectFile = MemoryBuffer::getFile(uniqueObjStr.c_str(), ec);
- if (ec)
+ OwningPtr<MemoryBuffer> BuffPtr;
+ if (error_code ec = MemoryBuffer::getFile(uniqueObjStr.c_str(),BuffPtr))
errMsg = ec.message();
+ _nativeObjectFile = BuffPtr.take();
}
// remove temp files
diff --git a/tools/lto/LTOModule.cpp b/tools/lto/LTOModule.cpp
index a33b8b473e..59c8b3517f 100644
--- a/tools/lto/LTOModule.cpp
+++ b/tools/lto/LTOModule.cpp
@@ -57,18 +57,17 @@ bool LTOModule::isBitcodeFileForTarget(const void *mem, size_t length,
bool LTOModule::isBitcodeFileForTarget(const char *path,
const char *triplePrefix) {
- error_code ec;
- MemoryBuffer *buffer = MemoryBuffer::getFile(path, ec);
- if (buffer == NULL)
+ OwningPtr<MemoryBuffer> buffer;
+ if (MemoryBuffer::getFile(path, buffer))
return false;
- return isTargetMatch(buffer, triplePrefix);
+ return isTargetMatch(buffer.take(), triplePrefix);
}
// Takes ownership of buffer.
bool LTOModule::isTargetMatch(MemoryBuffer *buffer, const char *triplePrefix) {
std::string Triple = getBitcodeTargetTriple(buffer, getGlobalContext());
delete buffer;
- return (strncmp(Triple.c_str(), triplePrefix,
+ return (strncmp(Triple.c_str(), triplePrefix,
strlen(triplePrefix)) == 0);
}
@@ -80,9 +79,8 @@ LTOModule::LTOModule(Module *m, TargetMachine *t)
LTOModule *LTOModule::makeLTOModule(const char *path,
std::string &errMsg) {
- error_code ec;
- OwningPtr<MemoryBuffer> buffer(MemoryBuffer::getFile(path, ec));
- if (!buffer) {
+ OwningPtr<MemoryBuffer> buffer;
+ if (error_code ec = MemoryBuffer::getFile(path, buffer)) {
errMsg = ec.message();
return NULL;
}
diff --git a/tools/macho-dump/macho-dump.cpp b/tools/macho-dump/macho-dump.cpp
index f4854bec47..c4c558d9ac 100644
--- a/tools/macho-dump/macho-dump.cpp
+++ b/tools/macho-dump/macho-dump.cpp
@@ -366,10 +366,8 @@ int main(int argc, char **argv) {
// Load the input file.
std::string ErrorStr;
- error_code ec;
- OwningPtr<MemoryBuffer> InputBuffer(
- MemoryBuffer::getFileOrSTDIN(InputFile, ec));
- if (!InputBuffer)
+ OwningPtr<MemoryBuffer> InputBuffer;
+ if (error_code ec = MemoryBuffer::getFileOrSTDIN(InputFile, InputBuffer))
return Error("unable to read input: '" + ec.message() + "'");
// Construct the Mach-O wrapper object.