From 7d43a3183211a2ebaaa0e290e6797ec9471f3324 Mon Sep 17 00:00:00 2001 From: Nuno Lopes Date: Fri, 24 Oct 2008 23:27:18 +0000 Subject: [PATCH] 2nd try to fix leakage of the module provider. note that moduleprovider takes ownership of the module git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58128 91177308-0d34-0410-b5e6-96231b3b80d8 --- Driver/Backend.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Driver/Backend.cpp b/Driver/Backend.cpp index 37c5f1651b..98cfeea380 100644 --- a/Driver/Backend.cpp +++ b/Driver/Backend.cpp @@ -91,7 +91,6 @@ namespace { delete AsmOutStream; delete TheTargetData; - delete TheModule; delete ModuleProvider; delete CodeGenPasses; delete PerModulePasses; @@ -102,6 +101,7 @@ namespace { Gen->InitializeTU(TU); TheModule = Gen->GetModule(); + ModuleProvider = new ExistingModuleProvider(TheModule); TheTargetData = new llvm::TargetData(TU.getContext().Target.getTargetDescription()); } @@ -122,7 +122,6 @@ namespace { FunctionPassManager *BackendConsumer::getCodeGenPasses() const { if (!CodeGenPasses) { - ModuleProvider = new ExistingModuleProvider(TheModule); CodeGenPasses = new FunctionPassManager(ModuleProvider); CodeGenPasses->add(new TargetData(*TheTargetData)); } @@ -141,8 +140,7 @@ PassManager *BackendConsumer::getPerModulePasses() const { FunctionPassManager *BackendConsumer::getPerFunctionPasses() const { if (!PerFunctionPasses) { - PerFunctionPasses = - new FunctionPassManager(new ExistingModuleProvider(TheModule)); + PerFunctionPasses = new FunctionPassManager(ModuleProvider); PerFunctionPasses->add(new TargetData(*TheTargetData)); } -- 2.50.1