diff options
| author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-05-31 00:44:06 +0000 |
|---|---|---|
| committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-05-31 00:44:06 +0000 |
| commit | 40e4604152cc07e5568c1731aeee35e5870b23bf (patch) | |
| tree | 0fdf6505e0cafa9e1b001330504929dfa45e0526 | |
| parent | a81980fe0d9f7e0041ac581ba15013c70e8b7f32 (diff) | |
| download | ppe42-gcc-40e4604152cc07e5568c1731aeee35e5870b23bf.tar.gz ppe42-gcc-40e4604152cc07e5568c1731aeee35e5870b23bf.zip | |
* combine.c (get_pos_from_mask): Test exact_log2 result as signed.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34280 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 4 | ||||
| -rw-r--r-- | gcc/combine.c | 6 |
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6b70bbbc8a2..885b7398c88 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2000-05-30 Richard Henderson <rth@cygnus.com> + * combine.c (get_pos_from_mask): Test exact_log2 result as signed. + +2000-05-30 Richard Henderson <rth@cygnus.com> + * bb-reorder.c (emit_jump_to_block_after): Protect use of HAVE_return. 2000-05-30 Bruce Korb <bkorb@gnu.org> diff --git a/gcc/combine.c b/gcc/combine.c index 47642f3d42f..8d7cadccbb7 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; } |

