[libc-commits] [libc] [libc] Fix implicit conversion error on rv32 (PR #138622)

via libc-commits libc-commits at lists.llvm.org
Mon May 5 18:31:19 PDT 2025


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-libc

Author: Mikhail R. Gadelha (mikhailramalho)

<details>
<summary>Changes</summary>

This patch fixes the following error on rv32 (and possibly other 32-bit archs):

FPBits.h:760:40: error: implicit conversion loses integer precision: 'int' to 'size_t' (aka 'unsigned int') [-Werror,-Wimplicit-int-conversion]
  760 |       result.set_significand(number >> -ep);

Fixes #<!-- -->138425.

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


1 Files Affected:

- (modified) libc/src/__support/FPUtil/FPBits.h (+1-1) 


``````````diff
diff --git a/libc/src/__support/FPUtil/FPBits.h b/libc/src/__support/FPUtil/FPBits.h
index bee8d0a8dc47d..4fa3bc30ecd12 100644
--- a/libc/src/__support/FPUtil/FPBits.h
+++ b/libc/src/__support/FPUtil/FPBits.h
@@ -757,7 +757,7 @@ struct FPRepImpl : public FPRepSem<fp_type, RetT> {
       result.set_significand(number);
       result.set_biased_exponent(static_cast<StorageType>(ep + 1));
     } else {
-      result.set_significand(number >> -ep);
+      result.set_significand(number >> static_cast<unsigned>(-ep));
     }
     return RetT(result.uintval());
   }

``````````

</details>


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


More information about the libc-commits mailing list