diff options
author | Richard Henderson <rth@cygnus.com> | 2000-05-30 17:44:06 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2000-05-30 17:44:06 -0700 |
commit | d3bc89386df9d3164bb1404897448106d40089e4 (patch) | |
tree | 0fdf6505e0cafa9e1b001330504929dfa45e0526 /gcc/combine.c | |
parent | efc70584784ba96f40bc702aea0810a45dcebe66 (diff) | |
download | gcc-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.c | 6 |
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; } |