Просмотр исходного кода

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.
Lioncash 7 лет назад
Родитель
Сommit
33db37e669
1 измененных файлов с 8 добавлено и 8 удалено
  1. 8 8
      src/common/bit_util.h

+ 8 - 8
src/common/bit_util.h

@@ -32,7 +32,7 @@ inline u32 CountLeadingZeroes32(u32 value) {
     return 32;
     return 32;
 }
 }
 
 
-inline u64 CountLeadingZeroes64(u64 value) {
+inline u32 CountLeadingZeroes64(u64 value) {
     unsigned long leading_zero = 0;
     unsigned long leading_zero = 0;
 
 
     if (_BitScanReverse64(&leading_zero, value) != 0) {
     if (_BitScanReverse64(&leading_zero, value) != 0) {
@@ -47,15 +47,15 @@ inline u32 CountLeadingZeroes32(u32 value) {
         return 32;
         return 32;
     }
     }
 
 
-    return __builtin_clz(value);
+    return static_cast<u32>(__builtin_clz(value));
 }
 }
 
 
-inline u64 CountLeadingZeroes64(u64 value) {
+inline u32 CountLeadingZeroes64(u64 value) {
     if (value == 0) {
     if (value == 0) {
         return 64;
         return 64;
     }
     }
 
 
-    return __builtin_clzll(value);
+    return static_cast<u32>(__builtin_clzll(value));
 }
 }
 #endif
 #endif
 
 
@@ -70,7 +70,7 @@ inline u32 CountTrailingZeroes32(u32 value) {
     return 32;
     return 32;
 }
 }
 
 
-inline u64 CountTrailingZeroes64(u64 value) {
+inline u32 CountTrailingZeroes64(u64 value) {
     unsigned long trailing_zero = 0;
     unsigned long trailing_zero = 0;
 
 
     if (_BitScanForward64(&trailing_zero, value) != 0) {
     if (_BitScanForward64(&trailing_zero, value) != 0) {
@@ -85,15 +85,15 @@ inline u32 CountTrailingZeroes32(u32 value) {
         return 32;
         return 32;
     }
     }
 
 
-    return __builtin_ctz(value);
+    return static_cast<u32>(__builtin_ctz(value));
 }
 }
 
 
-inline u64 CountTrailingZeroes64(u64 value) {
+inline u32 CountTrailingZeroes64(u64 value) {
     if (value == 0) {
     if (value == 0) {
         return 64;
         return 64;
     }
     }
 
 
-    return __builtin_ctzll(value);
+    return static_cast<u32>(__builtin_ctzll(value));
 }
 }
 #endif
 #endif