[libc-commits] [libc] [libc][math] Fix signaling NaN handling for math functions. (PR #133347)

via libc-commits libc-commits at lists.llvm.org
Wed Apr 2 07:50:15 PDT 2025


================
@@ -13,8 +13,10 @@
 using LlvmLibcAtanTest = LIBC_NAMESPACE::testing::FPTest<double>;
 
 TEST_F(LlvmLibcAtanTest, SpecialNumbers) {
+  EXPECT_FP_EQ_WITH_EXCEPTION(aNaN, LIBC_NAMESPACE::atan(sNaN), FE_INVALID);
+  EXPECT_MATH_ERRNO(0);
+
   EXPECT_FP_EQ_ALL_ROUNDING(aNaN, LIBC_NAMESPACE::atan(aNaN));
-  // atan(sNaN) = aNaN.
   EXPECT_EQ(FPBits(aNaN).uintval(),
             FPBits(LIBC_NAMESPACE::atan(sNaN)).uintval());
----------------
overmighty wrote:

You added a new check for `atan(sNaN)` above so I would say this one is redundant now, although it checks that the result is exactly `aNaN` whereas `EXPECT_FP_EQ*` will accept any NaN as actual value when the expected value is NaN.

```suggestion
```

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


More information about the libc-commits mailing list