]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR tree-optimization/30904 (VRP does not track values of shifts and/or bitfields?)
authorRichard Guenther <rguenther@suse.de>
Fri, 9 Mar 2007 12:29:09 +0000 (12:29 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Fri, 9 Mar 2007 12:29:09 +0000 (12:29 +0000)
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.

* gcc.dg/pr30904.c: Remove xfail.

From-SVN: r122748

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr30904.c
gcc/tree-vrp.c

index 71f203b83324eba09d81e6d10d5fe2cc84f97ac2..576aab08f048ff97ff72f62fc9728a6b827df865 100644 (file)
@@ -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.
index ba0392e8b331d36ae12dc2507c234c609025b49a..212bb2110349a20a75e45b3deb4e55e82d007ca5 100644 (file)
@@ -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
index bcd9048fe2144430cc70f8827a2de3a1f20ab9a6..31ca0497f91a75469307fc630926c2ed143e1859 100644 (file)
@@ -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" } } */
index 74f63e2478829b6869e8a41c5dcedd00255d3391..086c6dd9749cbf1b4182cfba848d5a2edc1f4a86 100644 (file)
@@ -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;