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

Mikhail R. Gadelha via libc-commits libc-commits at lists.llvm.org
Mon May 5 18:30:46 PDT 2025


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

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.

>From 242322f63a6531111160962688e7d2e14acab353 Mon Sep 17 00:00:00 2001
From: "Mikhail R. Gadelha" <mikhail at igalia.com>
Date: Mon, 5 May 2025 20:11:17 -0300
Subject: [PATCH] [libc] Fix implicit conversion error on rv32

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.
---
 libc/src/__support/FPUtil/FPBits.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

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());
   }



More information about the libc-commits mailing list