mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-03 01:12:53 +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);
|
||||
|
||||
/// 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);
|
||||
|
||||
/// addMachinePasses helper to create the target-selected or overriden
|
||||
|
@ -300,6 +300,8 @@ void TargetPassConfig::addPass(Pass *P) {
|
||||
|
||||
if (Started && !Stopped)
|
||||
PM->add(P);
|
||||
else
|
||||
delete P;
|
||||
if (StopAfter == PassID)
|
||||
Stopped = true;
|
||||
if (StartAfter == PassID)
|
||||
|
Loading…
Reference in New Issue
Block a user