diff options
author | aoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-12-12 04:56:29 +0000 |
---|---|---|
committer | aoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-12-12 04:56:29 +0000 |
commit | b126ad48b82fb94d4024b4b444267dd382f24774 (patch) | |
tree | 1ffb7ffff10a699fb7a8e87e1fd7bf924380fd57 /gcc/tree-vrp.c | |
parent | 657bf677e0316bbe385cc292a19ca29f1443bca3 (diff) | |
download | gcc-b126ad48b82fb94d4024b4b444267dd382f24774.tar.gz |
* tree-vrp.c (extract_range_from_binary_expr): Don't shift by
floor_log2 of zero. Negate widened zero.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@142702 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-vrp.c')
-rw-r--r-- | gcc/tree-vrp.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c index a69b216b796..9d23b24087f 100644 --- a/gcc/tree-vrp.c +++ b/gcc/tree-vrp.c @@ -2557,11 +2557,11 @@ extract_range_from_binary_expr (value_range_t *vr, ior_max.high = vr0_max.high | vr1_max.high; if (ior_max.high != 0) { - ior_max.low = ~0u; + ior_max.low = ~(unsigned HOST_WIDE_INT)0u; ior_max.high |= ((HOST_WIDE_INT) 1 << floor_log2 (ior_max.high)) - 1; } - else + else if (ior_max.low != 0) ior_max.low |= ((unsigned HOST_WIDE_INT) 1u << floor_log2 (ior_max.low)) - 1; |