[libc-commits] [libc] 52b7b22 - [libc][math] Fix division by infinity in fputil::div (#152092)

via libc-commits libc-commits at lists.llvm.org
Tue Aug 5 04:39:07 PDT 2025


Author: Krishna Pandey
Date: 2025-08-05T07:39:03-04:00
New Revision: 52b7b22cfabea0d89f443c0f05fa1073f3ba9c21

URL: https://github.com/llvm/llvm-project/commit/52b7b22cfabea0d89f443c0f05fa1073f3ba9c21
DIFF: https://github.com/llvm/llvm-project/commit/52b7b22cfabea0d89f443c0f05fa1073f3ba9c21.diff

LOG: [libc][math] Fix division by infinity in fputil::div (#152092)

Signed-off-by: Krishna Pandey <kpandey81930 at gmail.com>

Added: 
    

Modified: 
    libc/src/__support/FPUtil/generic/div.h
    libc/test/src/math/smoke/DivTest.h

Removed: 
    


################################################################################
diff  --git a/libc/src/__support/FPUtil/generic/div.h b/libc/src/__support/FPUtil/generic/div.h
index f0e405772e9fa..0891ae010ce20 100644
--- a/libc/src/__support/FPUtil/generic/div.h
+++ b/libc/src/__support/FPUtil/generic/div.h
@@ -78,7 +78,7 @@ div(InType x, InType y) {
     }
 
     if (y_bits.is_inf())
-      return OutFPBits::inf(result_sign).get_val();
+      return OutFPBits::zero(result_sign).get_val();
 
     if (y_bits.is_zero()) {
       if (x_bits.is_zero()) {

diff  --git a/libc/test/src/math/smoke/DivTest.h b/libc/test/src/math/smoke/DivTest.h
index d8074797449e9..ff82f68827a12 100644
--- a/libc/test/src/math/smoke/DivTest.h
+++ b/libc/test/src/math/smoke/DivTest.h
@@ -47,6 +47,11 @@ class DivTest : public LIBC_NAMESPACE::testing::FEnvSafeTest {
     EXPECT_FP_EQ(neg_inf, func(in.neg_inf, in.zero));
     EXPECT_FP_EQ(neg_inf, func(in.inf, in.neg_zero));
     EXPECT_FP_EQ(inf, func(in.neg_inf, in.neg_zero));
+    EXPECT_FP_EQ(zero, func(in.min_normal, in.inf));
+    EXPECT_FP_EQ(zero, func(in.zero, in.inf));
+    EXPECT_FP_EQ(zero, func(in.neg_zero, in.neg_inf));
+    EXPECT_FP_EQ(neg_zero, func(in.min_normal, in.neg_inf));
+    EXPECT_FP_EQ(neg_zero, func(in.zero, in.neg_inf));
   }
 
   void test_division_by_zero(DivFunc func) {


        


More information about the libc-commits mailing list