From 33db37e66923ef90a4071910eea06c79c077cc15 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Fri, 5 Apr 2019 15:28:08 -0400 Subject: common/bit_util: Make CountLeading/CountTrailing functions have the same return types Makes the return type consistently uniform (like the intrinsics we're wrapping). This also conveniently silences a truncation warning within the kernel multi_level_queue. --- src/common/bit_util.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'src/common/bit_util.h') diff --git a/src/common/bit_util.h b/src/common/bit_util.h index a4f9ed4aa..d032df413 100644 --- a/src/common/bit_util.h +++ b/src/common/bit_util.h @@ -32,7 +32,7 @@ inline u32 CountLeadingZeroes32(u32 value) { return 32; } -inline u64 CountLeadingZeroes64(u64 value) { +inline u32 CountLeadingZeroes64(u64 value) { unsigned long leading_zero = 0; if (_BitScanReverse64(&leading_zero, value) != 0) { @@ -47,15 +47,15 @@ inline u32 CountLeadingZeroes32(u32 value) { return 32; } - return __builtin_clz(value); + return static_cast(__builtin_clz(value)); } -inline u64 CountLeadingZeroes64(u64 value) { +inline u32 CountLeadingZeroes64(u64 value) { if (value == 0) { return 64; } - return __builtin_clzll(value); + return static_cast(__builtin_clzll(value)); } #endif @@ -70,7 +70,7 @@ inline u32 CountTrailingZeroes32(u32 value) { return 32; } -inline u64 CountTrailingZeroes64(u64 value) { +inline u32 CountTrailingZeroes64(u64 value) { unsigned long trailing_zero = 0; if (_BitScanForward64(&trailing_zero, value) != 0) { @@ -85,15 +85,15 @@ inline u32 CountTrailingZeroes32(u32 value) { return 32; } - return __builtin_ctz(value); + return static_cast(__builtin_ctz(value)); } -inline u64 CountTrailingZeroes64(u64 value) { +inline u32 CountTrailingZeroes64(u64 value) { if (value == 0) { return 64; } - return __builtin_ctzll(value); + return static_cast(__builtin_ctzll(value)); } #endif -- cgit v1.2.3