aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vrp.c
diff options
context:
space:
mode:
authorAndrew MacLeod <amacleod@redhat.com>2021-10-26 14:43:33 -0400
committerAndrew MacLeod <amacleod@redhat.com>2021-10-28 10:48:38 -0400
commitd46aeb5906b8ed7ee255cfbacc5cf9d2f56b850c (patch)
treecb81f6f5c2ff85d7daea343ad349bf116f6c3401 /gcc/tree-vrp.c
parentf70f17d03630fd948bc15a646ebe7e784125c4d4 (diff)
downloadgcc-d46aeb5906b8ed7ee255cfbacc5cf9d2f56b850c.zip
gcc-d46aeb5906b8ed7ee255cfbacc5cf9d2f56b850c.tar.gz
gcc-d46aeb5906b8ed7ee255cfbacc5cf9d2f56b850c.tar.bz2
Reset scev before invoking array_checker.
Before invoking the array_checker, we need to reset scev so it will not try to access any ssa_names that the substitute and fold engine has freed. PR tree-optimization/102940 * tree-vrp.c (execute_ranger_vrp): Reset scev.
Diffstat (limited to 'gcc/tree-vrp.c')
-rw-r--r--gcc/tree-vrp.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index 38ea503..dc3e250 100644
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -4351,7 +4351,6 @@ execute_ranger_vrp (struct function *fun, bool warn_array_bounds_p)
if (dump_file && (dump_flags & TDF_DETAILS))
ranger->dump (dump_file);
-
if (warn_array_bounds && warn_array_bounds_p)
{
// Set all edges as executable, except those ranger says aren't.
@@ -4367,6 +4366,7 @@ execute_ranger_vrp (struct function *fun, bool warn_array_bounds_p)
else
e->flags |= EDGE_EXECUTABLE;
}
+ scev_reset ();
array_bounds_checker array_checker (fun, ranger);
array_checker.check ();
}