[cfe-commits] r58127 - /cfe/trunk/Driver/Backend.cpp
Nuno Lopes
nunoplopes at sapo.pt
Fri Oct 24 15:51:01 PDT 2008
Author: nlopes
Date: Fri Oct 24 17:51:00 2008
New Revision: 58127
URL: http://llvm.org/viewvc/llvm-project?rev=58127&view=rev
Log:
fix leaking of the module provider
Modified:
cfe/trunk/Driver/Backend.cpp
Modified: cfe/trunk/Driver/Backend.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/Driver/Backend.cpp?rev=58127&r1=58126&r2=58127&view=diff
==============================================================================
--- cfe/trunk/Driver/Backend.cpp (original)
+++ cfe/trunk/Driver/Backend.cpp Fri Oct 24 17:51:00 2008
@@ -52,6 +52,7 @@
llvm::TargetData *TheTargetData;
llvm::raw_ostream *AsmOutStream;
+ mutable llvm::ModuleProvider *ModuleProvider;
mutable FunctionPassManager *CodeGenPasses;
mutable PassManager *PerModulePasses;
mutable FunctionPassManager *PerFunctionPasses;
@@ -81,7 +82,7 @@
InputFile(infile),
OutputFile(outfile),
Gen(CreateLLVMCodeGen(Diags, Features, InputFile, GenerateDebugInfo)),
- TheModule(0), TheTargetData(0), AsmOutStream(0),
+ TheModule(0), TheTargetData(0), AsmOutStream(0), ModuleProvider(0),
CodeGenPasses(0), PerModulePasses(0), PerFunctionPasses(0) {}
~BackendConsumer() {
@@ -91,6 +92,7 @@
delete AsmOutStream;
delete TheTargetData;
delete TheModule;
+ delete ModuleProvider;
delete CodeGenPasses;
delete PerModulePasses;
delete PerFunctionPasses;
@@ -120,8 +122,8 @@
FunctionPassManager *BackendConsumer::getCodeGenPasses() const {
if (!CodeGenPasses) {
- CodeGenPasses =
- new FunctionPassManager(new ExistingModuleProvider(TheModule));
+ ModuleProvider = new ExistingModuleProvider(TheModule);
+ CodeGenPasses = new FunctionPassManager(ModuleProvider);
CodeGenPasses->add(new TargetData(*TheTargetData));
}
More information about the cfe-commits
mailing list