diff options
author | Craig Topper <craig.topper@gmail.com> | 2016-05-06 06:56:14 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2016-05-06 06:56:14 +0000 |
commit | 886b4ecfe7100f9056de7192aa2e67ec98b8884f (patch) | |
tree | 2e21c71e2110078413111d7a0cb4059eb1df83bd /utils | |
parent | 00b2aa28184447f953f6e10801f346bc4b7e61b3 (diff) |
[TableGen] Fix a memory leak when creating SwitchOpcodeMatchers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268712 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils')
-rw-r--r-- | utils/TableGen/DAGISelMatcherOpt.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/utils/TableGen/DAGISelMatcherOpt.cpp b/utils/TableGen/DAGISelMatcherOpt.cpp index e17e27a2be4..ad385fac043 100644 --- a/utils/TableGen/DAGISelMatcherOpt.cpp +++ b/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)); |