[libc-commits] [libc] [Libc] Two more implicit to explicit cast changes (PR #130638)

via libc-commits libc-commits at lists.llvm.org
Mon Mar 10 09:50:26 PDT 2025


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-libc

Author: Jan Patrick Lehr (jplehr)

<details>
<summary>Changes</summary>

Those two instances were also flagged with a warning after https://github.com/llvm/llvm-project/pull/126846 landed
and broke the build in two of our bots, e.g., https://lab.llvm.org/buildbot/#/builders/10/builds/1004.

I believe using type T here makes sense, but I can very well be wrong.

---
Full diff: https://github.com/llvm/llvm-project/pull/130638.diff


1 Files Affected:

- (modified) libc/src/__support/CPP/bit.h (+2-2) 


``````````diff
diff --git a/libc/src/__support/CPP/bit.h b/libc/src/__support/CPP/bit.h
index 7d138201783bf..e491f3e032669 100644
--- a/libc/src/__support/CPP/bit.h
+++ b/libc/src/__support/CPP/bit.h
@@ -162,7 +162,7 @@ ADD_SPECIALIZATION(countl_zero, unsigned long long, __builtin_clzll)
 template <typename T>
 [[nodiscard]] LIBC_INLINE constexpr cpp::enable_if_t<cpp::is_unsigned_v<T>, int>
 countl_one(T value) {
-  return cpp::countl_zero<T>(~value);
+  return cpp::countl_zero<T>(static_cast<T>(~value));
 }
 
 /// Count the number of ones from the least significant bit to the first
@@ -175,7 +175,7 @@ countl_one(T value) {
 template <typename T>
 [[nodiscard]] LIBC_INLINE constexpr cpp::enable_if_t<cpp::is_unsigned_v<T>, int>
 countr_one(T value) {
-  return cpp::countr_zero<T>(~value);
+  return cpp::countr_zero<T>(static_cast<T>(~value));
 }
 
 /// Returns the number of bits needed to represent value if value is nonzero.

``````````

</details>


https://github.com/llvm/llvm-project/pull/130638


More information about the libc-commits mailing list