diff options
author | Jakub Jelinek <jakub@redhat.com> | 2019-11-12 09:21:40 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2019-11-12 09:21:40 +0100 |
commit | e4722b81a45e797565b700d1a5af9b66ae56adf0 (patch) | |
tree | afca8a60120ba3f8af9af6fe3a43ac4edf18c4f5 /gcc/tree-vrp.c | |
parent | f03099371687f3f087e4949a68daccf76c8d18bc (diff) | |
download | gcc-e4722b81a45e797565b700d1a5af9b66ae56adf0.zip gcc-e4722b81a45e797565b700d1a5af9b66ae56adf0.tar.gz gcc-e4722b81a45e797565b700d1a5af9b66ae56adf0.tar.bz2 |
re PR tree-optimization/92452 (ICE in vrp_prop::check_array_ref at tree-vrp.c:4153)
PR tree-optimization/92452
* tree-vrp.c (vrp_prop::check_array_ref): If TRUNC_DIV_EXPR folds
into NULL_TREE, set up_bound to NULL_TREE instead of computing
MINUS_EXPR on it.
* c-c++-common/pr92452.c: New test.
From-SVN: r278080
Diffstat (limited to 'gcc/tree-vrp.c')
-rw-r--r-- | gcc/tree-vrp.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c index b8b6967..da11dfb 100644 --- a/gcc/tree-vrp.c +++ b/gcc/tree-vrp.c @@ -4150,8 +4150,11 @@ vrp_prop::check_array_ref (location_t location, tree ref, up_bound_p1 = int_const_binop (TRUNC_DIV_EXPR, maxbound, eltsize); - up_bound = int_const_binop (MINUS_EXPR, up_bound_p1, - build_int_cst (ptrdiff_type_node, 1)); + if (up_bound_p1 != NULL_TREE) + up_bound = int_const_binop (MINUS_EXPR, up_bound_p1, + build_int_cst (ptrdiff_type_node, 1)); + else + up_bound = NULL_TREE; } } else |