From d3bc89386df9d3164bb1404897448106d40089e4 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Tue, 30 May 2000 17:44:06 -0700 Subject: [PATCH] * combine.c (get_pos_from_mask): Test exact_log2 result as signed. From-SVN: r34280 --- gcc/ChangeLog | 4 ++++ gcc/combine.c | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6b70bbbc8a28..885b7398c882 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2000-05-30 Richard Henderson + + * combine.c (get_pos_from_mask): Test exact_log2 result as signed. + 2000-05-30 Richard Henderson * bb-reorder.c (emit_jump_to_block_after): Protect use of HAVE_return. diff --git a/gcc/combine.c b/gcc/combine.c index 47642f3d42f0..8d7cadccbb7c 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; } -- 2.43.5