From d46aeb5906b8ed7ee255cfbacc5cf9d2f56b850c Mon Sep 17 00:00:00 2001 From: Andrew MacLeod 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(-) diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c index 38ea50303e0..dc3e250537a 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 (); } -- 2.17.2