From 8f862c80bcef0ee54fc5d355cd6a0ec765b955c9 Mon Sep 17 00:00:00 2001 From: Owen Anderson Date: Tue, 5 Jun 2007 22:11:49 +0000 Subject: [PATCH] Don't leak memory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37442 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Scalar/GVNPRE.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/Transforms/Scalar/GVNPRE.cpp b/lib/Transforms/Scalar/GVNPRE.cpp index b34239d6a61..b93c70b0400 100644 --- a/lib/Transforms/Scalar/GVNPRE.cpp +++ b/lib/Transforms/Scalar/GVNPRE.cpp @@ -158,11 +158,14 @@ Value* GVNPRE::phi_translate(ValueTable& VN, std::set& MS, Value* newVal = BinaryOperator::create(BO->getOpcode(), newOp1, newOp2, BO->getName()+".gvnpre"); - add(VN, MS, newVal); - if (!find_leader(VN, set, VN[newVal])) + + if (!find_leader(VN, set, VN[newVal])) { + add(VN, MS, newVal); return newVal; - else + } else { + delete newVal; return 0; + } } } else if (PHINode* P = dyn_cast(V)) { if (P->getParent() == pred->getTerminator()->getSuccessor(0))