From 7f1653a7aee0c30adfa948ad5bdbf12c7cc1e519 Mon Sep 17 00:00:00 2001 From: Andrew Trick Date: Thu, 13 Oct 2011 18:49:23 +0000 Subject: [PATCH] Fix memory corruption I introduced a few checkins ago. Self-review easily caught this obvious bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141880 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Analysis/ScalarEvolutionNormalization.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/Analysis/ScalarEvolutionNormalization.cpp b/lib/Analysis/ScalarEvolutionNormalization.cpp index 0670e463922..c66ecd6e872 100644 --- a/lib/Analysis/ScalarEvolutionNormalization.cpp +++ b/lib/Analysis/ScalarEvolutionNormalization.cpp @@ -202,12 +202,13 @@ TransformSubExpr(const SCEV *S, Instruction *User, Value *OperandValToReplace) { if (isa(S) || isa(S)) return S; - const SCEV *&ExprRef = Transformed[S]; - if (ExprRef) - return ExprRef; + const SCEV *Result = Transformed.lookup(S); + if (Result) + return Result; - ExprRef = TransformImpl(S, User, OperandValToReplace); - return ExprRef; + Result = TransformImpl(S, User, OperandValToReplace); + Transformed[S] = Result; + return Result; } /// Top level driver for transforming an expression DAG into its requested