aboutsummaryrefslogtreecommitdiff
path: root/gcc/combine.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>2000-05-30 17:44:06 -0700
committerRichard Henderson <rth@gcc.gnu.org>2000-05-30 17:44:06 -0700
commitd3bc89386df9d3164bb1404897448106d40089e4 (patch)
tree0fdf6505e0cafa9e1b001330504929dfa45e0526 /gcc/combine.c
parentefc70584784ba96f40bc702aea0810a45dcebe66 (diff)
downloadgcc-d3bc89386df9d3164bb1404897448106d40089e4.zip
gcc-d3bc89386df9d3164bb1404897448106d40089e4.tar.gz
gcc-d3bc89386df9d3164bb1404897448106d40089e4.tar.bz2
* combine.c (get_pos_from_mask): Test exact_log2 result as signed.
From-SVN: r34280
Diffstat (limited to 'gcc/combine.c')
-rw-r--r--gcc/combine.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/combine.c b/gcc/combine.c
index 47642f3..8d7cadc 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -6588,17 +6588,19 @@ get_pos_from_mask (m, plen)
{
/* Get the bit number of the first 1 bit from the right, -1 if none. */
int pos = exact_log2 (m & - m);
+ int len;
if (pos < 0)
return -1;
/* Now shift off the low-order zero bits and see if we have a power of
two minus 1. */
- *plen = exact_log2 ((m >> pos) + 1);
+ len = exact_log2 ((m >> pos) + 1);
- if (*plen <= 0)
+ if (len <= 0)
return -1;
+ *plen = len;
return pos;
}