[libcxx-commits] [libcxx] [libc++][C++03] cherry-pick #104773 (PR #158244)
Nikolas Klauser via libcxx-commits
libcxx-commits at lists.llvm.org
Wed Sep 24 01:58:17 PDT 2025
https://github.com/philnik777 updated https://github.com/llvm/llvm-project/pull/158244
>From 50d7645cad8518f99d8c4f79751cd743ea136835 Mon Sep 17 00:00:00 2001
From: Nikolas Klauser <nikolasklauser at berlin.de>
Date: Fri, 12 Sep 2025 10:42:27 +0200
Subject: [PATCH] [libc++][C++03] cherry-pick #104773
---
libcxx/include/__cxx03/__math/traits.h | 13 ++++++++-----
libcxx/test/std/numerics/c.math/isnormal.pass.cpp | 2 --
2 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/libcxx/include/__cxx03/__math/traits.h b/libcxx/include/__cxx03/__math/traits.h
index 0d27680d579a4..f9d11aebe4ed6 100644
--- a/libcxx/include/__cxx03/__math/traits.h
+++ b/libcxx/include/__cxx03/__math/traits.h
@@ -109,16 +109,19 @@ _LIBCPP_NODISCARD inline _LIBCPP_HIDE_FROM_ABI bool isnan(long double __x) _NOEX
// isnormal
-template <class _A1, __enable_if_t<is_floating_point<_A1>::value, int> = 0>
-_LIBCPP_NODISCARD _LIBCPP_HIDE_FROM_ABI bool isnormal(_A1 __x) _NOEXCEPT {
- return __builtin_isnormal(__x);
-}
-
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
_LIBCPP_NODISCARD _LIBCPP_HIDE_FROM_ABI bool isnormal(_A1 __x) _NOEXCEPT {
return __x != 0;
}
+_LIBCPP_NODISCARD inline _LIBCPP_HIDE_FROM_ABI bool isnormal(float __x) _NOEXCEPT { return __builtin_isnormal(__x); }
+
+_LIBCPP_NODISCARD inline _LIBCPP_HIDE_FROM_ABI bool isnormal(double __x) _NOEXCEPT { return __builtin_isnormal(__x); }
+
+_LIBCPP_NODISCARD inline _LIBCPP_HIDE_FROM_ABI bool isnormal(long double __x) _NOEXCEPT {
+ return __builtin_isnormal(__x);
+}
+
// isgreater
template <class _A1, class _A2, __enable_if_t<is_arithmetic<_A1>::value && is_arithmetic<_A2>::value, int> = 0>
diff --git a/libcxx/test/std/numerics/c.math/isnormal.pass.cpp b/libcxx/test/std/numerics/c.math/isnormal.pass.cpp
index 03b086fa3f48e..76c3d13520d99 100644
--- a/libcxx/test/std/numerics/c.math/isnormal.pass.cpp
+++ b/libcxx/test/std/numerics/c.math/isnormal.pass.cpp
@@ -11,8 +11,6 @@
// We don't control the implementation on windows
// UNSUPPORTED: windows
-// XFAIL: FROZEN-CXX03-HEADERS-FIXME
-
#include <cassert>
#include <cmath>
#include <limits>
More information about the libcxx-commits
mailing list