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
diff --git a/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp b/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp
index e6c82a3..604477e 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>
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 @@
/// 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 781bca9..7a72cec 100644
--- a/tools/llvm-dis/llvm-dis.cpp
+++ b/tools/llvm-dis/llvm-dis.cpp
@@ -81,12 +81,13 @@
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 6bf4931..8708204 100644
--- a/tools/llvm-mc/llvm-mc.cpp
+++ b/tools/llvm-mc/llvm-mc.cpp
@@ -168,12 +168,12 @@
}
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 @@
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 @@
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 @@
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 1661596..7daf792 100644
--- a/tools/llvm-nm/llvm-nm.cpp
+++ b/tools/llvm-nm/llvm-nm.cpp
@@ -144,10 +144,8 @@
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 aa9cf00..9d0b468 100644
--- a/tools/llvm-prof/llvm-prof.cpp
+++ b/tools/llvm-prof/llvm-prof.cpp
@@ -264,11 +264,11 @@
// 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 d49e6a7..439bac1 100644
--- a/tools/lto/LTOCodeGenerator.cpp
+++ b/tools/lto/LTOCodeGenerator.cpp
@@ -224,10 +224,10 @@
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 a33b8b4..59c8b35 100644
--- a/tools/lto/LTOModule.cpp
+++ b/tools/lto/LTOModule.cpp
@@ -57,18 +57,17 @@
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::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 f4854be..c4c558d 100644
--- a/tools/macho-dump/macho-dump.cpp
+++ b/tools/macho-dump/macho-dump.cpp
@@ -366,10 +366,8 @@
// 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.