summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-dis/llvm-dis.cpp
diff options
context:
space:
mode:
authorMichael J. Spencer <bigcheesegs@gmail.com>2010-12-16 22:37:52 +0000
committerMichael J. Spencer <bigcheesegs@gmail.com>2010-12-16 22:37:52 +0000
commita646f39c679b49a13b39ac20d4bcb2fe45025fbe (patch)
tree496fc19878a607e8adae445ebb8a173b25ae9026 /llvm/tools/llvm-dis/llvm-dis.cpp
parent7ed7afc8b7706184b61adb7d4be7a74b886f4120 (diff)
downloadbcm5719-llvm-a646f39c679b49a13b39ac20d4bcb2fe45025fbe.tar.gz
bcm5719-llvm-a646f39c679b49a13b39ac20d4bcb2fe45025fbe.zip
llvm-dis: Fix memory leak. ParseBitcodeFile should be taking ownership of
the MemoryBuffer*, however, it doesn't seem to delete it. llvm-svn: 122004
Diffstat (limited to 'llvm/tools/llvm-dis/llvm-dis.cpp')
-rw-r--r--llvm/tools/llvm-dis/llvm-dis.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/llvm/tools/llvm-dis/llvm-dis.cpp b/llvm/tools/llvm-dis/llvm-dis.cpp
index 1d361885173..b4977ced5bd 100644
--- a/llvm/tools/llvm-dis/llvm-dis.cpp
+++ b/llvm/tools/llvm-dis/llvm-dis.cpp
@@ -80,12 +80,14 @@ int main(int argc, char **argv) {
std::string ErrorMessage;
std::auto_ptr<Module> M;
- OwningPtr<MemoryBuffer> BufferPtr;
- if (error_code ec = MemoryBuffer::getFileOrSTDIN(InputFilename, BufferPtr))
- ErrorMessage = ec.message();
- else
- M.reset(ParseBitcodeFile(BufferPtr.take(), Context, &ErrorMessage));
+ {
+ OwningPtr<MemoryBuffer> BufferPtr;
+ if (error_code ec = MemoryBuffer::getFileOrSTDIN(InputFilename, BufferPtr))
+ ErrorMessage = ec.message();
+ else
+ M.reset(ParseBitcodeFile(BufferPtr.get(), Context, &ErrorMessage));
+ }
if (M.get() == 0) {
errs() << argv[0] << ": ";
OpenPOWER on IntegriCloud