summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2016-05-06 06:56:14 +0000
committerCraig Topper <craig.topper@gmail.com>2016-05-06 06:56:14 +0000
commitc6b36698844d76ed5baf66361f28bfb8f59c3335 (patch)
treed1166e07a4d706a5ef998d3cc107af639c2d8b20
parent332dd6614afcc121912f14829648414fb8fc07fa (diff)
downloadbcm5719-llvm-c6b36698844d76ed5baf66361f28bfb8f59c3335.tar.gz
bcm5719-llvm-c6b36698844d76ed5baf66361f28bfb8f59c3335.zip
[TableGen] Fix a memory leak when creating SwitchOpcodeMatchers.
llvm-svn: 268712
-rw-r--r--llvm/utils/TableGen/DAGISelMatcherOpt.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/utils/TableGen/DAGISelMatcherOpt.cpp b/llvm/utils/TableGen/DAGISelMatcherOpt.cpp
index e17e27a2be4..ad385fac043 100644
--- a/llvm/utils/TableGen/DAGISelMatcherOpt.cpp
+++ b/llvm/utils/TableGen/DAGISelMatcherOpt.cpp
@@ -383,7 +383,8 @@ static void FactorNodes(std::unique_ptr<Matcher> &MatcherPtr) {
CheckOpcodeMatcher *COM = cast<CheckOpcodeMatcher>(NewOptionsToMatch[i]);
assert(Opcodes.insert(COM->getOpcode().getEnumName()).second &&
"Duplicate opcodes not factored?");
- Cases.push_back(std::make_pair(&COM->getOpcode(), COM->getNext()));
+ Cases.push_back(std::make_pair(&COM->getOpcode(), COM->takeNext()));
+ delete COM;
}
MatcherPtr.reset(new SwitchOpcodeMatcher(Cases));
OpenPOWER on IntegriCloud