From 6fa8474c42cf1e974c84d117c61d49a31497f5dc Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Sun, 27 Dec 2009 16:15:28 +0900 Subject: [PATCH] don't check for bits over 32 on 32-bit machines in integer_log2 (removes shift width warning) --- lib/srfi/33/bit.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/srfi/33/bit.c b/lib/srfi/33/bit.c index 63cdc163..cbfc940e 100644 --- a/lib/srfi/33/bit.c +++ b/lib/srfi/33/bit.c @@ -236,9 +236,12 @@ static const char log_table_256[256] = static sexp_uint_t integer_log2 (sexp_uint_t x) { sexp_uint_t t, tt; +#if SEXP_64_BIT if ((tt = x >> 32)) return integer_log2(tt) + 32; - else if ((tt = x >> 16)) + else +#endif + if ((tt = x >> 16)) return (t = tt >> 8) ? 24 + log_table_256[t] : 16 + log_table_256[tt]; else return (t = x >> 8) ? 8 + log_table_256[t] : log_table_256[x];