From c6b36698844d76ed5baf66361f28bfb8f59c3335 Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Fri, 6 May 2016 06:56:14 +0000 Subject: [TableGen] Fix a memory leak when creating SwitchOpcodeMatchers. llvm-svn: 268712 --- llvm/utils/TableGen/DAGISelMatcherOpt.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'llvm/utils/TableGen/DAGISelMatcherOpt.cpp') 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 &MatcherPtr) { CheckOpcodeMatcher *COM = cast(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)); -- cgit v1.2.3