From d46aeb5906b8ed7ee255cfbacc5cf9d2f56b850c Mon Sep 17 00:00:00 2001
From: Andrew MacLeod <amacleod@redhat.com>
Date: Tue, 26 Oct 2021 14:43:33 -0400
Subject: [PATCH 1/3] 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.
---
gcc/tree-vrp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
@@ -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 ();
}
--
2.17.2