mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-26 02:30:30 +08:00
tree-vrp.c (compare_ranges): Return false for EQ_EXPR if VR0 is less than VR1 or vice-versa.
2005-11-19 James A. Morrison <phython@gcc.gnu.org> * tree-vrp.c (compare_ranges): Return false for EQ_EXPR if VR0 is less than VR1 or vice-versa. From-SVN: r107243
This commit is contained in:
parent
b3231ce8af
commit
7ab1122a47
@ -1,3 +1,8 @@
|
||||
2005-11-19 James A. Morrison <phython@gcc.gnu.org>
|
||||
|
||||
* tree-vrp.c (compare_ranges): Return false for EQ_EXPR if VR0 is less
|
||||
than VR1 or vice-versa.
|
||||
|
||||
2005-11-19 Hans-Peter Nilsson <hp@axis.com>
|
||||
|
||||
PR middle-end/24912
|
||||
|
@ -1,3 +1,7 @@
|
||||
2005-11-19 James A. Morrison <phython@gcc.gnu.org>
|
||||
|
||||
* gcc.dg/tree-ssa/vrp22.c: New test.
|
||||
|
||||
2005-11-19 Hans-Peter Nilsson <hp@axis.com>
|
||||
|
||||
PR middle-end/24912
|
||||
|
16
gcc/testsuite/gcc.dg/tree-ssa/vrp22.c
Normal file
16
gcc/testsuite/gcc.dg/tree-ssa/vrp22.c
Normal file
@ -0,0 +1,16 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O1 -ftree-vrp -fdump-tree-vrp" } */
|
||||
|
||||
extern void link_error ();
|
||||
|
||||
void test02(unsigned int a, unsigned int b)
|
||||
{
|
||||
unsigned int x = 0x80000000;
|
||||
if (a > x)
|
||||
if (b < x)
|
||||
if (a == b)
|
||||
link_error ();
|
||||
}
|
||||
|
||||
/* { dg-final { scan-tree-dump-times "link_error" 0 "vrp" } } */
|
||||
/* { dg-final { cleanup-tree-dump "vrp" } } */
|
@ -1878,6 +1878,10 @@ compare_ranges (enum tree_code comp, value_range_t *vr0, value_range_t *vr1)
|
||||
else if (cmp_min != -2 && cmp_max != -2)
|
||||
return boolean_false_node;
|
||||
}
|
||||
/* If [V0_MIN, V1_MAX] < [V1_MIN, V1_MAX] then V0 != V1. */
|
||||
else if (compare_values (vr0->min, vr1->max) == 1
|
||||
|| compare_values (vr1->min, vr0->max) == 1)
|
||||
return boolean_false_node;
|
||||
|
||||
return NULL_TREE;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user