Clear the SCEVExpander's insertion point after making deletions,
authorDan Gohman <gohman@apple.com>
Sat, 20 Mar 2010 03:53:53 +0000 (03:53 +0000)
committerDan Gohman <gohman@apple.com>
Sat, 20 Mar 2010 03:53:53 +0000 (03:53 +0000)
commit472fdf7090bb00af3a3f9dcbe22263120a527533
tree22acb773efd1cd75c2fab43beb7d8e8a166e3897
parent1ad584e93d3f615c86405c1d010fe9f0535acd26
Clear the SCEVExpander's insertion point after making deletions,
so that the SCEVExpander doesn't retain a dangling pointer as its
insert position. The dangling pointer in this case wasn't ever used
to insert new instructions, but it was causing trouble with
SCEVExpander's code for automatically advancing its insert position
past debug intrinsics.

This fixes use-after-free errors that valgrind noticed in
test/Transforms/IndVarSimplify/2007-06-06-DeleteDanglesPtr.ll and
test/Transforms/IndVarSimplify/exit_value_tests.ll.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99036 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Analysis/ScalarEvolutionExpander.h
lib/Transforms/Scalar/IndVarSimplify.cpp