re PR tree-optimization/88427 (ICE: tree check: expected integer_cst, have plus_expr in get_len, at tree.h:5617)
2018-12-10 Richard Biener <rguenther@suse.de> PR tree-optimization/88427 * vr-values.c (vr_values::extract_range_from_phi_node): Handle symbolic ranges conservatively when trying to drop to Inf +- 1. * gcc.dg/pr88427.c: New testcase. From-SVN: r266955
This commit is contained in:
parent
4a902ec80f
commit
dee75828b4
4 changed files with 38 additions and 4 deletions
|
@ -1,3 +1,10 @@
|
|||
2018-12-10 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/88427
|
||||
* vr-values.c (vr_values::extract_range_from_phi_node):
|
||||
Handle symbolic ranges conservatively when trying to drop
|
||||
to Inf +- 1.
|
||||
|
||||
2018-12-10 Martin Jambor <mjambor@suse.cz>
|
||||
|
||||
PR ipa/88214
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2018-12-10 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/88427
|
||||
* gcc.dg/pr88427.c: New testcase.
|
||||
|
||||
2018-12-10 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR ipa/87955
|
||||
|
|
20
gcc/testsuite/gcc.dg/pr88427.c
Normal file
20
gcc/testsuite/gcc.dg/pr88427.c
Normal file
|
@ -0,0 +1,20 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -fno-tree-dce -fno-tree-fre -Wno-div-by-zero" } */
|
||||
|
||||
void
|
||||
uj (int eq, int s4)
|
||||
{
|
||||
short int tm = 0;
|
||||
|
||||
for (;;)
|
||||
if (eq == s4)
|
||||
{
|
||||
tm += !!s4;
|
||||
if (tm == s4)
|
||||
{
|
||||
eq += tm;
|
||||
for (;;)
|
||||
eq /= 0;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -2891,8 +2891,9 @@ vr_values::extract_range_from_phi_node (gphi *phi, value_range *vr_result)
|
|||
if (cmp_min < 0)
|
||||
new_min = lhs_vr->min ();
|
||||
else if (cmp_min > 0
|
||||
&& tree_int_cst_lt (vrp_val_min (vr_result->type ()),
|
||||
vr_result->min ()))
|
||||
&& (TREE_CODE (vr_result->min ()) != INTEGER_CST
|
||||
|| tree_int_cst_lt (vrp_val_min (vr_result->type ()),
|
||||
vr_result->min ())))
|
||||
new_min = int_const_binop (PLUS_EXPR,
|
||||
vrp_val_min (vr_result->type ()),
|
||||
build_int_cst (vr_result->type (), 1));
|
||||
|
@ -2901,8 +2902,9 @@ vr_values::extract_range_from_phi_node (gphi *phi, value_range *vr_result)
|
|||
if (cmp_max > 0)
|
||||
new_max = lhs_vr->max ();
|
||||
else if (cmp_max < 0
|
||||
&& tree_int_cst_lt (vr_result->max (),
|
||||
vrp_val_max (vr_result->type ())))
|
||||
&& (TREE_CODE (vr_result->max ()) != INTEGER_CST
|
||||
|| tree_int_cst_lt (vr_result->max (),
|
||||
vrp_val_max (vr_result->type ()))))
|
||||
new_max = int_const_binop (MINUS_EXPR,
|
||||
vrp_val_max (vr_result->type ()),
|
||||
build_int_cst (vr_result->type (), 1));
|
||||
|
|
Loading…
Add table
Reference in a new issue