diff options
Diffstat (limited to 'llvm/lib/VMCore/Core.cpp')
-rw-r--r-- | llvm/lib/VMCore/Core.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/llvm/lib/VMCore/Core.cpp b/llvm/lib/VMCore/Core.cpp index a4c77a26700..6bad2f3f442 100644 --- a/llvm/lib/VMCore/Core.cpp +++ b/llvm/lib/VMCore/Core.cpp @@ -2221,9 +2221,10 @@ LLVMBool LLVMCreateMemoryBufferWithContentsOfFile( LLVMMemoryBufferRef *OutMemBuf, char **OutMessage) { + OwningPtr<MemoryBuffer> MB; error_code ec; - if (MemoryBuffer *MB = MemoryBuffer::getFile(Path, ec)) { - *OutMemBuf = wrap(MB); + if (!(ec = MemoryBuffer::getFile(Path, MB))) { + *OutMemBuf = wrap(MB.take()); return 0; } @@ -2233,9 +2234,10 @@ LLVMBool LLVMCreateMemoryBufferWithContentsOfFile( LLVMBool LLVMCreateMemoryBufferWithSTDIN(LLVMMemoryBufferRef *OutMemBuf, char **OutMessage) { + OwningPtr<MemoryBuffer> MB; error_code ec; - if (MemoryBuffer *MB = MemoryBuffer::getSTDIN(ec)) { - *OutMemBuf = wrap(MB); + if (!(ec = MemoryBuffer::getSTDIN(MB))) { + *OutMemBuf = wrap(MB.take()); return 0; } |