[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


================
@@ -18,6 +18,18 @@ using LlvmLibcAtan2fTest = LIBC_NAMESPACE::testing::FPTest<float>;
 TEST_F(LlvmLibcAtan2fTest, SpecialNumbers) {
   LIBC_NAMESPACE::libc_errno = 0;
 
+  EXPECT_FP_EQ_WITH_EXCEPTION(aNaN, LIBC_NAMESPACE::atan2f(sNaN, sNaN),
+                              FE_INVALID);
+  EXPECT_MATH_ERRNO(0);
+
+  EXPECT_FP_EQ_WITH_EXCEPTION(aNaN, LIBC_NAMESPACE::atan2f(sNaN, 1.0),
+                              FE_INVALID);
+  EXPECT_MATH_ERRNO(0);
+
+  EXPECT_FP_EQ_WITH_EXCEPTION(aNaN, LIBC_NAMESPACE::atan2f(1.0, sNaN),
+                              FE_INVALID);
----------------
overmighty wrote:

Nit: should use `1.0f` instead of `1.0` since `atan2f` takes a `float` input.

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


More information about the libc-commits mailing list