Fix a double free in llvm::getBitcodeTargetTriple.
authorRafael Espindola <rafael.espindola@gmail.com>
Wed, 27 Aug 2014 21:11:13 +0000 (21:11 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Wed, 27 Aug 2014 21:11:13 +0000 (21:11 +0000)
Unfortunately this is only used by ld64, so no testcase, but should fix the darwin LTO bootstrap.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216618 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Bitcode/Reader/BitcodeReader.cpp

index 1b88e5f5fa577feaca6fb5ec38e17d095be57f28..a614ec37cf6787188838f091606a5ba439b66ded 100644 (file)
@@ -3588,7 +3588,7 @@ ErrorOr<Module *> llvm::parseBitcodeFile(MemoryBufferRef Buffer,
 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 "";