[libcxx-commits] [libcxx] 90db629 - [libc++][C++03] cherry-pick #104773 (#158244)

via libcxx-commits libcxx-commits at lists.llvm.org
Thu Sep 25 01:30:39 PDT 2025


Author: Nikolas Klauser
Date: 2025-09-25T10:30:34+02:00
New Revision: 90db6292653e9aba81134b1a04f89c74c5ed1e28

URL: https://github.com/llvm/llvm-project/commit/90db6292653e9aba81134b1a04f89c74c5ed1e28
DIFF: https://github.com/llvm/llvm-project/commit/90db6292653e9aba81134b1a04f89c74c5ed1e28.diff

LOG: [libc++][C++03] cherry-pick  #104773 (#158244)

Added: 
    

Modified: 
    libcxx/include/__cxx03/__math/traits.h
    libcxx/test/std/numerics/c.math/isnormal.pass.cpp

Removed: 
    


################################################################################
diff  --git a/libcxx/include/__cxx03/__math/traits.h b/libcxx/include/__cxx03/__math/traits.h
index 2b6ca406ae9a0..250e88beb7d70 100644
--- a/libcxx/include/__cxx03/__math/traits.h
+++ b/libcxx/include/__cxx03/__math/traits.h
@@ -121,16 +121,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