summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gcc.dg/pr30904.c2
-rw-r--r--gcc/tree-vrp.c4
4 files changed, 17 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 71f203b8332..576aab08f04 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2007-03-09 Richard Guenther <rguenther@suse.de>
+
+ 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 <aoliva@redhat.com>
* recog.c (decode_asm_operands): No mixed declarations and code.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index ba0392e8b33..212bb211034 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2007-03-09 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/30904
+ PR middle-end/31058
+ * gcc.dg/pr30904.c: Remove xfail.
+
2007-03-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR C/31072
diff --git a/gcc/testsuite/gcc.dg/pr30904.c b/gcc/testsuite/gcc.dg/pr30904.c
index bcd9048fe21..31ca0497f91 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 74f63e24788..086c6dd9749 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;