Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge pull request #9422 from MerryMage/__builtin_clz
BitUtils: __builtin_clz is undefined when value == 0
  • Loading branch information
JosJuice committed Jan 3, 2021
2 parents 4b9259d + 6106d64 commit e957ed0
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions Source/Core/Common/BitUtils.h
Expand Up @@ -365,7 +365,7 @@ T ExpandValue(T value, size_t left_shift_amount)
constexpr int CountLeadingZeros(uint64_t value)
{
#if defined(__GNUC__)
return __builtin_clzll(value);
return value ? __builtin_clzll(value) : 64;
#elif defined(_MSC_VER) && defined(_M_ARM_64)
return _CountLeadingZeros64(value);
#elif defined(_MSC_VER) && defined(_M_X86_64)
Expand All @@ -385,7 +385,7 @@ constexpr int CountLeadingZeros(uint64_t value)
constexpr int CountLeadingZeros(uint32_t value)
{
#if defined(__GNUC__)
return __builtin_clz(value);
return value ? __builtin_clz(value) : 32;
#elif defined(_MSC_VER) && defined(_M_ARM_64)
return _CountLeadingZeros(value);
#elif defined(_MSC_VER) && defined(_M_X86_64)
Expand Down

0 comments on commit e957ed0

Please sign in to comment.