diff options
author | Andrew Trick <atrick@apple.com> | 2011-10-13 18:49:23 +0000 |
---|---|---|
committer | Andrew Trick <atrick@apple.com> | 2011-10-13 18:49:23 +0000 |
commit | 7f1653a7aee0c30adfa948ad5bdbf12c7cc1e519 (patch) | |
tree | 779d9b3530bde880e743cb724b2f62fa844cc7e2 /lib/Analysis/ScalarEvolutionNormalization.cpp | |
parent | e9d3c1cfbeae9ce34ec7cd4ad7edb2b235e4c785 (diff) |
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
Diffstat (limited to 'lib/Analysis/ScalarEvolutionNormalization.cpp')
-rw-r--r-- | lib/Analysis/ScalarEvolutionNormalization.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/Analysis/ScalarEvolutionNormalization.cpp b/lib/Analysis/ScalarEvolutionNormalization.cpp index 0670e46392..c66ecd6e87 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<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 |