X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=tools%2Fllvm-prof%2Fllvm-prof.cpp;h=9d0b46833befa606f2ad581f61e849bc3bdfceb4;hb=adf01b3f18442ae8db6b8948e70d82d9df415119;hp=aa9cf004c74cedb09664fc94abebd6529e375bcc;hpb=333fb04506233255f10d8095c9e2de5e5f0fdc6f;p=oota-llvm.git diff --git a/tools/llvm-prof/llvm-prof.cpp b/tools/llvm-prof/llvm-prof.cpp index aa9cf004c74..9d0b46833be 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 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) {