diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 71f203b83324..576aab08f048 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2007-03-09 Richard Guenther + + PR tree-optimization/30904 + PR middle-end/31058 + * tree-vrp.c (extract_range_from_binary_expr): Handle RSHIFT_EXPR + the same way as *_DIV_EXPR. + 2007-03-09 Alexandre Oliva * recog.c (decode_asm_operands): No mixed declarations and code. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ba0392e8b331..212bb2110349 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2007-03-09 Richard Guenther + + PR tree-optimization/30904 + PR middle-end/31058 + * gcc.dg/pr30904.c: Remove xfail. + 2007-03-08 Andrew Pinski PR C/31072 diff --git a/gcc/testsuite/gcc.dg/pr30904.c b/gcc/testsuite/gcc.dg/pr30904.c index bcd9048fe214..31ca0497f91a 100644 --- a/gcc/testsuite/gcc.dg/pr30904.c +++ b/gcc/testsuite/gcc.dg/pr30904.c @@ -14,5 +14,5 @@ int main (void) } -/* { dg-final { scan-tree-dump-times "link_error" 0 "optimized" { xfail *-*-* } } } */ +/* { dg-final { scan-tree-dump-times "link_error" 0 "optimized" } } */ /* { dg-final { cleanup-tree-dump "optimized" } } */ diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c index 74f63e247882..086c6dd9749c 100644 --- a/gcc/tree-vrp.c +++ b/gcc/tree-vrp.c @@ -1596,6 +1596,7 @@ extract_range_from_binary_expr (value_range_t *vr, tree expr) && code != CEIL_DIV_EXPR && code != EXACT_DIV_EXPR && code != ROUND_DIV_EXPR + && code != RSHIFT_EXPR && code != MIN_EXPR && code != MAX_EXPR && code != BIT_AND_EXPR @@ -1763,7 +1764,8 @@ extract_range_from_binary_expr (value_range_t *vr, tree expr) || code == FLOOR_DIV_EXPR || code == CEIL_DIV_EXPR || code == EXACT_DIV_EXPR - || code == ROUND_DIV_EXPR) + || code == ROUND_DIV_EXPR + || code == RSHIFT_EXPR) { tree val[4]; size_t i;