diff options
author | Jakub Jelinek <jakub@redhat.com> | 2013-04-29 09:55:09 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2013-04-29 09:55:09 +0200 |
commit | 94dc53320e6c22ef0d3f8d8db83c2492de001f5b (patch) | |
tree | 6cf1064a1d9c33e18ac75ab7b877083fc02d1b1c /gcc/tree-vrp.c | |
parent | baee1763e2c82dab41d55da559292030974b41c6 (diff) | |
download | gcc-94dc53320e6c22ef0d3f8d8db83c2492de001f5b.zip gcc-94dc53320e6c22ef0d3f8d8db83c2492de001f5b.tar.gz gcc-94dc53320e6c22ef0d3f8d8db83c2492de001f5b.tar.bz2 |
re PR tree-optimization/57083 (Wrong constant folding)
PR tree-optimization/57083
* tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
non-singleton shift count range, zero extend low_bound for uns case.
* gcc.dg/torture/pr57083.c: New test.
From-SVN: r198388
Diffstat (limited to 'gcc/tree-vrp.c')
-rw-r--r-- | gcc/tree-vrp.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c index cb4a09a..a740907 100644 --- a/gcc/tree-vrp.c +++ b/gcc/tree-vrp.c @@ -2837,7 +2837,7 @@ extract_range_from_binary_expr_1 (value_range_t *vr, if (uns) { - low_bound = bound; + low_bound = bound.zext (prec); high_bound = complement.zext (prec); if (tree_to_double_int (vr0.max).ult (low_bound)) { |