[llvm] r216618 - Fix a double free in llvm::getBitcodeTargetTriple.

Rafael Espindola rafael.espindola at gmail.com
Wed Aug 27 14:11:14 PDT 2014


Author: rafael
Date: Wed Aug 27 16:11:13 2014
New Revision: 216618

URL: http://llvm.org/viewvc/llvm-project?rev=216618&view=rev
Log:
Fix a double free in llvm::getBitcodeTargetTriple.

Unfortunately this is only used by ld64, so no testcase, but should fix the darwin LTO bootstrap.

Modified:
    llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp

Modified: llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp?rev=216618&r1=216617&r2=216618&view=diff
==============================================================================
--- llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp (original)
+++ llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp Wed Aug 27 16:11:13 2014
@@ -3588,7 +3588,7 @@ ErrorOr<Module *> llvm::parseBitcodeFile
 std::string llvm::getBitcodeTargetTriple(MemoryBufferRef Buffer,
                                          LLVMContext &Context) {
   std::unique_ptr<MemoryBuffer> Buf = MemoryBuffer::getMemBuffer(Buffer, false);
-  auto R = llvm::make_unique<BitcodeReader>(Buf.get(), Context);
+  auto R = llvm::make_unique<BitcodeReader>(Buf.release(), Context);
   ErrorOr<std::string> Triple = R->parseTriple();
   if (Triple.getError())
     return "";





More information about the llvm-commits mailing list