aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vrp.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2007-03-09 12:29:09 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2007-03-09 12:29:09 +0000
commit6569e7164326f050bb5fe58f1fa960d4efc23b9a (patch)
treead0afb138af70a13d08f511f33e7f57ccdc3288a /gcc/tree-vrp.c
parentfb0a24601dd929dac9962358497b8af1856cbd02 (diff)
downloadgcc-6569e7164326f050bb5fe58f1fa960d4efc23b9a.zip
gcc-6569e7164326f050bb5fe58f1fa960d4efc23b9a.tar.gz
gcc-6569e7164326f050bb5fe58f1fa960d4efc23b9a.tar.bz2
re PR tree-optimization/30904 (VRP does not track values of shifts and/or bitfields?)
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
Diffstat (limited to 'gcc/tree-vrp.c')
-rw-r--r--gcc/tree-vrp.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index 74f63e2..086c6dd 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;