[build] Fix it (#37085)

Fixes for sanity and strict builds.

Closes #37085

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/37085 from ctiller:oh-my 9d545316cc
PiperOrigin-RevId: 647502892
pull/37082/head^2
Craig Tiller 8 months ago committed by Copybara-Service
parent ef9d085f94
commit 5df8cd0efd
  1. 20
      src/core/util/useful.h

@ -114,24 +114,24 @@ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION inline constexpr uint32_t BitCount(
}
#if GRPC_HAS_BUILTIN(__builtin_ctz)
GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION inline constexpr uint32_t
CountTrailingZeros(uint32_t i) {
DCHECK_NE(i, 0); // __builtin_ctz returns undefined behavior for 0
GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION inline uint32_t CountTrailingZeros(
uint32_t i) {
DCHECK_NE(i, 0u); // __builtin_ctz returns undefined behavior for 0
return __builtin_ctz(i);
}
GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION inline constexpr uint32_t
CountTrailingZeros(uint64_t i) {
DCHECK_NE(i, 0); // __builtin_ctz returns undefined behavior for 0
GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION inline uint32_t CountTrailingZeros(
uint64_t i) {
DCHECK_NE(i, 0u); // __builtin_ctz returns undefined behavior for 0
return __builtin_ctzll(i);
}
#else
GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION inline constexpr uint32_t
CountTrailingZeros(uint32_t i) {
GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION inline uint32_t CountTrailingZeros(
uint32_t i) {
DCHECK_NE(i, 0); // __builtin_ctz returns undefined behavior for 0
return BitCount((i & -i) - 1);
}
GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION inline constexpr uint32_t
CountTrailingZeros(uint64_t i) {
GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION inline uint32_t CountTrailingZeros(
uint64_t i) {
DCHECK_NE(i, 0); // __builtin_ctz returns undefined behavior for 0
return BitCount((i & -i) - 1);
}

Loading…
Cancel
Save