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
diff --git a/lib/Analysis/ScalarEvolutionNormalization.cpp b/lib/Analysis/ScalarEvolutionNormalization.cpp
index 0670e46..c66ecd6 100644
--- a/lib/Analysis/ScalarEvolutionNormalization.cpp
+++ b/lib/Analysis/ScalarEvolutionNormalization.cpp
@@ -202,12 +202,13 @@
if (isa<SCEVConstant>(S) || isa<SCEVUnknown>(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