OSDN Git Service

Try again to fix memory leak in r354692
authorDaniel Sanders <daniel_l_sanders@apple.com>
Sat, 23 Feb 2019 03:25:37 +0000 (03:25 +0000)
committerDaniel Sanders <daniel_l_sanders@apple.com>
Sat, 23 Feb 2019 03:25:37 +0000 (03:25 +0000)
The previous one didn't fix everything.

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

unittests/CodeGen/TargetOptionsTest.cpp

index 70ef5e1..6b4d3ed 100644 (file)
@@ -1,4 +1,5 @@
 #include "llvm/Target/TargetOptions.h"
+#include "llvm/CodeGen/TargetPassConfig.h"
 #include "llvm/IR/LLVMContext.h"
 #include "llvm/IR/LegacyPassManager.h"
 #include "llvm/Support/TargetRegistry.h"
@@ -43,7 +44,6 @@ std::unique_ptr<TargetMachine> createTargetMachine(bool EnableIPRA) {
 typedef std::function<void(bool)> TargetOptionsTest;
 
 static void targetOptionsTest(bool EnableIPRA) {
-  LLVMContext Context;
   std::unique_ptr<TargetMachine> TM = createTargetMachine(EnableIPRA);
   // This test is designed for the X86 backend; stop if it is not available.
   if (!TM)
@@ -51,10 +51,12 @@ static void targetOptionsTest(bool EnableIPRA) {
   legacy::PassManager PM;
   LLVMTargetMachine *LLVMTM = static_cast<LLVMTargetMachine *>(TM.get());
 
-  TargetPassConfig &TPC = *LLVMTM->createPassConfig(PM);
+  TargetPassConfig *TPC = LLVMTM->createPassConfig(PM);
   (void)TPC;
 
   ASSERT_TRUE(TM->Options.EnableIPRA == EnableIPRA);
+
+  delete TPC;
 }
 
 } // End of anonymous namespace.