Consensus: Fix bug when compiler do not support __builtin_clz*
#ifdef is not correct since defination is defined to 0 or 1. Should change to #if
This commit is contained in:
parent
9e2ed253f5
commit
18307849b4
1 changed files with 2 additions and 2 deletions
|
@ -82,12 +82,12 @@ void static inline WriteBE64(unsigned char* ptr, uint64_t x)
|
||||||
/** Return the smallest number n such that (x >> n) == 0 (or 64 if the highest bit in x is set. */
|
/** Return the smallest number n such that (x >> n) == 0 (or 64 if the highest bit in x is set. */
|
||||||
uint64_t static inline CountBits(uint64_t x)
|
uint64_t static inline CountBits(uint64_t x)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_DECL___BUILTIN_CLZL
|
#if HAVE_DECL___BUILTIN_CLZL
|
||||||
if (sizeof(unsigned long) >= sizeof(uint64_t)) {
|
if (sizeof(unsigned long) >= sizeof(uint64_t)) {
|
||||||
return x ? 8 * sizeof(unsigned long) - __builtin_clzl(x) : 0;
|
return x ? 8 * sizeof(unsigned long) - __builtin_clzl(x) : 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef HAVE_DECL___BUILTIN_CLZLL
|
#if HAVE_DECL___BUILTIN_CLZLL
|
||||||
if (sizeof(unsigned long long) >= sizeof(uint64_t)) {
|
if (sizeof(unsigned long long) >= sizeof(uint64_t)) {
|
||||||
return x ? 8 * sizeof(unsigned long long) - __builtin_clzll(x) : 0;
|
return x ? 8 * sizeof(unsigned long long) - __builtin_clzll(x) : 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue