mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-11 05:35:11 +00:00
Don't leak passes if added outside of the area determined by Started/Stopped flags.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187722 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
ccdf5cc7bc
commit
f8e16c6f5a
@ -308,7 +308,8 @@ protected:
|
|||||||
AnalysisID addPass(AnalysisID PassID);
|
AnalysisID addPass(AnalysisID PassID);
|
||||||
|
|
||||||
/// Add a pass to the PassManager if that pass is supposed to be run, as
|
/// Add a pass to the PassManager if that pass is supposed to be run, as
|
||||||
/// determined by the StartAfter and StopAfter options.
|
/// determined by the StartAfter and StopAfter options. Takes ownership of the
|
||||||
|
/// pass.
|
||||||
void addPass(Pass *P);
|
void addPass(Pass *P);
|
||||||
|
|
||||||
/// addMachinePasses helper to create the target-selected or overriden
|
/// addMachinePasses helper to create the target-selected or overriden
|
||||||
|
@ -300,6 +300,8 @@ void TargetPassConfig::addPass(Pass *P) {
|
|||||||
|
|
||||||
if (Started && !Stopped)
|
if (Started && !Stopped)
|
||||||
PM->add(P);
|
PM->add(P);
|
||||||
|
else
|
||||||
|
delete P;
|
||||||
if (StopAfter == PassID)
|
if (StopAfter == PassID)
|
||||||
Stopped = true;
|
Stopped = true;
|
||||||
if (StartAfter == PassID)
|
if (StartAfter == PassID)
|
||||||
|
Loading…
Reference in New Issue
Block a user