Skip to content
This repository was archived by the owner on Apr 23, 2020. It is now read-only.

Commit 01a5c17

Browse files
committed
Delete the Matchers stored in the SmallVectors in SwitchOpcodeMatcher/SwitchTypeMatcher.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200377 91177308-0d34-0410-b5e6-96231b3b80d8
1 parent 99c3e48 commit 01a5c17

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

utils/TableGen/DAGISelMatcher.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,15 @@ ScopeMatcher::~ScopeMatcher() {
8484
delete Children[i];
8585
}
8686

87+
SwitchOpcodeMatcher::~SwitchOpcodeMatcher() {
88+
for (unsigned i = 0, e = Cases.size(); i != e; ++i)
89+
delete Cases[i].second;
90+
}
91+
92+
SwitchTypeMatcher::~SwitchTypeMatcher() {
93+
for (unsigned i = 0, e = Cases.size(); i != e; ++i)
94+
delete Cases[i].second;
95+
}
8796

8897
CheckPredicateMatcher::CheckPredicateMatcher(const TreePredicateFn &pred)
8998
: Matcher(CheckPredicate), Pred(pred.getOrigPatFragRecord()) {}

utils/TableGen/DAGISelMatcher.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -505,6 +505,7 @@ class SwitchOpcodeMatcher : public Matcher {
505505
public:
506506
SwitchOpcodeMatcher(ArrayRef<std::pair<const SDNodeInfo*, Matcher*> > cases)
507507
: Matcher(SwitchOpcode), Cases(cases.begin(), cases.end()) {}
508+
virtual ~SwitchOpcodeMatcher();
508509

509510
static inline bool classof(const Matcher *N) {
510511
return N->getKind() == SwitchOpcode;
@@ -558,6 +559,7 @@ class SwitchTypeMatcher : public Matcher {
558559
public:
559560
SwitchTypeMatcher(ArrayRef<std::pair<MVT::SimpleValueType, Matcher*> > cases)
560561
: Matcher(SwitchType), Cases(cases.begin(), cases.end()) {}
562+
virtual ~SwitchTypeMatcher();
561563

562564
static inline bool classof(const Matcher *N) {
563565
return N->getKind() == SwitchType;

0 commit comments

Comments
 (0)