mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-13 19:37:33 +08:00
re PR tree-optimization/22230 (value range propagation error)
PR tree-optimization/22230 gcc/ * tree-vrp.c (extract_range_from_binary_expr): Fix logics thinko in the computation of the four cross productions for "range op range". testsuite/ * gcc.dg/tree-ssa/pr22230.c: New test. From-SVN: r102038
This commit is contained in:
parent
e8f35d4dc7
commit
3c341936db
gcc
@ -1,3 +1,9 @@
|
||||
2005-07-14 Steven Bosscher <stevenb@suse.de>
|
||||
|
||||
PR tree-optimization/22230
|
||||
* tree-vrp.c (extract_range_from_binary_expr): Fix logics thinko in
|
||||
the computation of the four cross productions for "range op range".
|
||||
|
||||
2005-07-14 Alexandre Oliva <aoliva@redhat.com>
|
||||
Ulrich Weigand <uweigand@de.ibm.com>
|
||||
|
||||
|
@ -1,3 +1,8 @@
|
||||
2005-07-15 Steven Bosscher <stevenb@suse.de>
|
||||
|
||||
PR tree-optimization/22230
|
||||
* gcc.dg/tree-ssa/pr22230.c: New test.
|
||||
|
||||
2005-07-14 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* gfortran.dg/g77/cpp6.f: New test.
|
||||
|
21
gcc/testsuite/gcc.dg/tree-ssa/pr22230.c
Normal file
21
gcc/testsuite/gcc.dg/tree-ssa/pr22230.c
Normal file
@ -0,0 +1,21 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O1 -ftree-vrp" } */
|
||||
|
||||
/* PR tree-optimization/22230
|
||||
|
||||
The meet of the ranges in "i*i" was not computed correctly, leading
|
||||
gcc to believe that a was equal to 0 after the loop. */
|
||||
|
||||
extern void abort (void) __attribute__((noreturn));
|
||||
|
||||
int main (void)
|
||||
{
|
||||
long a, i;
|
||||
|
||||
for (i = 0; i < 5; i++)
|
||||
a = i * i;
|
||||
if (a != 16)
|
||||
abort ();
|
||||
return 0;
|
||||
}
|
||||
|
@ -1183,7 +1183,7 @@ extract_range_from_binary_expr (value_range_t *vr, tree expr)
|
||||
? vrp_int_const_binop (code, vr0.max, vr1.min)
|
||||
: NULL_TREE;
|
||||
|
||||
val[3] = (vr0.min != vr1.min && vr0.max != vr1.max)
|
||||
val[3] = (vr0.min != vr0.max && vr1.min != vr1.max)
|
||||
? vrp_int_const_binop (code, vr0.max, vr1.max)
|
||||
: NULL_TREE;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user