[libc-commits] [libc] [libc] Fixing float128 UB error (PR #211593)

via libc-commits libc-commits at lists.llvm.org
Thu Jul 23 08:53:52 PDT 2026


https://github.com/Sukumarsawant updated https://github.com/llvm/llvm-project/pull/211593

>From accfc9c9dc8f35e78f7927c28fd880a085896cf3 Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Thu, 23 Jul 2026 21:08:19 +0530
Subject: [PATCH 1/2] initial test commit

---
 libc/test/src/__support/FPUtil/float128_test.cpp | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/libc/test/src/__support/FPUtil/float128_test.cpp b/libc/test/src/__support/FPUtil/float128_test.cpp
index b4ee0439ba0f5..c971b01925867 100644
--- a/libc/test/src/__support/FPUtil/float128_test.cpp
+++ b/libc/test/src/__support/FPUtil/float128_test.cpp
@@ -87,6 +87,8 @@ TEST(LlvmLibcFloat128Test, IntegerConversion) {
   ASSERT_EQ(static_cast<long long>(Float128(LLONG_MIN)), LLONG_MIN);
   ASSERT_EQ(static_cast<unsigned>(Float128(UINT_MAX)), UINT_MAX);
   ASSERT_EQ(static_cast<unsigned>(Float128(0U)), 0U);
+  int a = static_cast<int>(Float128(1e300));
+  (void)a;
 
   // FP exceptions
   LIBC_NAMESPACE::fputil::clear_except(FE_ALL_EXCEPT);

>From 79699cd9f7fd1557f92178093b6ed64735278391 Mon Sep 17 00:00:00 2001
From: Sukumarsawant <sawantsukumar at gmail.com>
Date: Thu, 23 Jul 2026 21:23:37 +0530
Subject: [PATCH 2/2] sanitizer

---
 libc/test/src/__support/FPUtil/CMakeLists.txt | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/libc/test/src/__support/FPUtil/CMakeLists.txt b/libc/test/src/__support/FPUtil/CMakeLists.txt
index cab95df0e709c..ee2bbf688b1cb 100644
--- a/libc/test/src/__support/FPUtil/CMakeLists.txt
+++ b/libc/test/src/__support/FPUtil/CMakeLists.txt
@@ -49,6 +49,8 @@ add_fp_unittest(
     libc.hdr.limits_macros
     libc.src.__support.FPUtil.fenv_impl
     libc.src.__support.FPUtil.float128
+  COMPILE_OPTIONS
+    "-fsanitize=address"
 )
 
 # TODO: Temporally disable bfloat16 test until MPCommon target is updated



More information about the libc-commits mailing list