[libc++][AIX] Use C++ overloads from libc++'s math.h
AIX's system header provides these C++ overloads for compatibility with
older XL C++ implementations, but they can be disabled by defining
__LIBC_NO_CPP_MATH_OVERLOADS__ since AIX 7.2 TL 5 SP 3.
Since D109078 landed clang will define this macro when using libc++ on
AIX and we already run the lit tests with it too. This change will
enable the overloads in libc++'s math.h and we'll continue to require
the compiler to define the macro going forward.
Reviewed By: ldionne, jsji, EricWF
Differential Revision: https://reviews.llvm.org/D102172
co-authored-by: Jason Liu <jasonliu.development@gmail.com>
NOKEYCHECK=True
GitOrigin-RevId: f642436cc213f99a90e3a4258666dd693b29d79d
diff --git a/include/math.h b/include/math.h
index e2fd576..7d553e7 100644
--- a/include/math.h
+++ b/include/math.h
@@ -788,10 +788,10 @@
// acos
-#if !(defined(_AIX) || defined(__sun__))
+# if !defined(__sun__)
inline _LIBCPP_INLINE_VISIBILITY float acos(float __lcpp_x) _NOEXCEPT {return ::acosf(__lcpp_x);}
inline _LIBCPP_INLINE_VISIBILITY long double acos(long double __lcpp_x) _NOEXCEPT {return ::acosl(__lcpp_x);}
-#endif
+# endif
template <class _A1>
inline _LIBCPP_INLINE_VISIBILITY
@@ -800,10 +800,10 @@
// asin
-#if !(defined(_AIX) || defined(__sun__))
+# if !defined(__sun__)
inline _LIBCPP_INLINE_VISIBILITY float asin(float __lcpp_x) _NOEXCEPT {return ::asinf(__lcpp_x);}
inline _LIBCPP_INLINE_VISIBILITY long double asin(long double __lcpp_x) _NOEXCEPT {return ::asinl(__lcpp_x);}
-#endif
+# endif
template <class _A1>
inline _LIBCPP_INLINE_VISIBILITY
@@ -812,10 +812,10 @@
// atan
-#if !(defined(_AIX) || defined(__sun__))
+# if !defined(__sun__)
inline _LIBCPP_INLINE_VISIBILITY float atan(float __lcpp_x) _NOEXCEPT {return ::atanf(__lcpp_x);}
inline _LIBCPP_INLINE_VISIBILITY long double atan(long double __lcpp_x) _NOEXCEPT {return ::atanl(__lcpp_x);}
-#endif
+# endif
template <class _A1>
inline _LIBCPP_INLINE_VISIBILITY
@@ -824,10 +824,10 @@
// atan2
-#if !(defined(_AIX) || defined(__sun__))
+# if !defined(__sun__)
inline _LIBCPP_INLINE_VISIBILITY float atan2(float __lcpp_y, float __lcpp_x) _NOEXCEPT {return ::atan2f(__lcpp_y, __lcpp_x);}
inline _LIBCPP_INLINE_VISIBILITY long double atan2(long double __lcpp_y, long double __lcpp_x) _NOEXCEPT {return ::atan2l(__lcpp_y, __lcpp_x);}
-#endif
+# endif
template <class _A1, class _A2>
inline _LIBCPP_INLINE_VISIBILITY
@@ -847,10 +847,10 @@
// ceil
-#if !(defined(_AIX) || defined(__sun__))
+# if !defined(__sun__)
inline _LIBCPP_INLINE_VISIBILITY float ceil(float __lcpp_x) _NOEXCEPT {return ::ceilf(__lcpp_x);}
inline _LIBCPP_INLINE_VISIBILITY long double ceil(long double __lcpp_x) _NOEXCEPT {return ::ceill(__lcpp_x);}
-#endif
+# endif
template <class _A1>
inline _LIBCPP_INLINE_VISIBILITY
@@ -859,10 +859,10 @@
// cos
-#if !(defined(_AIX) || defined(__sun__))
+# if !defined(__sun__)
inline _LIBCPP_INLINE_VISIBILITY float cos(float __lcpp_x) _NOEXCEPT {return ::cosf(__lcpp_x);}
inline _LIBCPP_INLINE_VISIBILITY long double cos(long double __lcpp_x) _NOEXCEPT {return ::cosl(__lcpp_x);}
-#endif
+# endif
template <class _A1>
inline _LIBCPP_INLINE_VISIBILITY
@@ -871,10 +871,10 @@
// cosh
-#if !(defined(_AIX) || defined(__sun__))
+# if !defined(__sun__)
inline _LIBCPP_INLINE_VISIBILITY float cosh(float __lcpp_x) _NOEXCEPT {return ::coshf(__lcpp_x);}
inline _LIBCPP_INLINE_VISIBILITY long double cosh(long double __lcpp_x) _NOEXCEPT {return ::coshl(__lcpp_x);}
-#endif
+# endif
template <class _A1>
inline _LIBCPP_INLINE_VISIBILITY
@@ -883,10 +883,10 @@
// exp
-#if !(defined(_AIX) || defined(__sun__))
+# if !defined(__sun__)
inline _LIBCPP_INLINE_VISIBILITY float exp(float __lcpp_x) _NOEXCEPT {return ::expf(__lcpp_x);}
inline _LIBCPP_INLINE_VISIBILITY long double exp(long double __lcpp_x) _NOEXCEPT {return ::expl(__lcpp_x);}
-#endif
+# endif
template <class _A1>
inline _LIBCPP_INLINE_VISIBILITY
@@ -895,10 +895,10 @@
// fabs
-#if !(defined(_AIX) || defined(__sun__))
+# if !defined(__sun__)
inline _LIBCPP_INLINE_VISIBILITY float fabs(float __lcpp_x) _NOEXCEPT {return ::fabsf(__lcpp_x);}
inline _LIBCPP_INLINE_VISIBILITY long double fabs(long double __lcpp_x) _NOEXCEPT {return ::fabsl(__lcpp_x);}
-#endif
+# endif
template <class _A1>
inline _LIBCPP_INLINE_VISIBILITY
@@ -907,10 +907,10 @@
// floor
-#if !(defined(_AIX) || defined(__sun__))
+# if !defined(__sun__)
inline _LIBCPP_INLINE_VISIBILITY float floor(float __lcpp_x) _NOEXCEPT {return ::floorf(__lcpp_x);}
inline _LIBCPP_INLINE_VISIBILITY long double floor(long double __lcpp_x) _NOEXCEPT {return ::floorl(__lcpp_x);}
-#endif
+# endif
template <class _A1>
inline _LIBCPP_INLINE_VISIBILITY
@@ -919,10 +919,10 @@
// fmod
-#if !(defined(_AIX) || defined(__sun__))
+# if !defined(__sun__)
inline _LIBCPP_INLINE_VISIBILITY float fmod(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return ::fmodf(__lcpp_x, __lcpp_y);}
inline _LIBCPP_INLINE_VISIBILITY long double fmod(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::fmodl(__lcpp_x, __lcpp_y);}
-#endif
+# endif
template <class _A1, class _A2>
inline _LIBCPP_INLINE_VISIBILITY
@@ -942,10 +942,10 @@
// frexp
-#if !(defined(_AIX) || defined(__sun__))
+# if !defined(__sun__)
inline _LIBCPP_INLINE_VISIBILITY float frexp(float __lcpp_x, int* __lcpp_e) _NOEXCEPT {return ::frexpf(__lcpp_x, __lcpp_e);}
inline _LIBCPP_INLINE_VISIBILITY long double frexp(long double __lcpp_x, int* __lcpp_e) _NOEXCEPT {return ::frexpl(__lcpp_x, __lcpp_e);}
-#endif
+# endif
template <class _A1>
inline _LIBCPP_INLINE_VISIBILITY
@@ -954,10 +954,10 @@
// ldexp
-#if !(defined(_AIX) || defined(__sun__))
+# if !defined(__sun__)
inline _LIBCPP_INLINE_VISIBILITY float ldexp(float __lcpp_x, int __lcpp_e) _NOEXCEPT {return ::ldexpf(__lcpp_x, __lcpp_e);}
inline _LIBCPP_INLINE_VISIBILITY long double ldexp(long double __lcpp_x, int __lcpp_e) _NOEXCEPT {return ::ldexpl(__lcpp_x, __lcpp_e);}
-#endif
+# endif
template <class _A1>
inline _LIBCPP_INLINE_VISIBILITY
@@ -966,10 +966,10 @@
// log
-#if !(defined(_AIX) || defined(__sun__))
+# if !defined(__sun__)
inline _LIBCPP_INLINE_VISIBILITY float log(float __lcpp_x) _NOEXCEPT {return ::logf(__lcpp_x);}
inline _LIBCPP_INLINE_VISIBILITY long double log(long double __lcpp_x) _NOEXCEPT {return ::logl(__lcpp_x);}
-#endif
+# endif
template <class _A1>
inline _LIBCPP_INLINE_VISIBILITY
@@ -978,10 +978,10 @@
// log10
-#if !(defined(_AIX) || defined(__sun__))
+# if !defined(__sun__)
inline _LIBCPP_INLINE_VISIBILITY float log10(float __lcpp_x) _NOEXCEPT {return ::log10f(__lcpp_x);}
inline _LIBCPP_INLINE_VISIBILITY long double log10(long double __lcpp_x) _NOEXCEPT {return ::log10l(__lcpp_x);}
-#endif
+# endif
template <class _A1>
inline _LIBCPP_INLINE_VISIBILITY
@@ -990,17 +990,17 @@
// modf
-#if !(defined(_AIX) || defined(__sun__))
+# if !defined(__sun__)
inline _LIBCPP_INLINE_VISIBILITY float modf(float __lcpp_x, float* __lcpp_y) _NOEXCEPT {return ::modff(__lcpp_x, __lcpp_y);}
inline _LIBCPP_INLINE_VISIBILITY long double modf(long double __lcpp_x, long double* __lcpp_y) _NOEXCEPT {return ::modfl(__lcpp_x, __lcpp_y);}
-#endif
+# endif
// pow
-#if !(defined(_AIX) || defined(__sun__))
+# if !defined(__sun__)
inline _LIBCPP_INLINE_VISIBILITY float pow(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return ::powf(__lcpp_x, __lcpp_y);}
inline _LIBCPP_INLINE_VISIBILITY long double pow(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::powl(__lcpp_x, __lcpp_y);}
-#endif
+# endif
template <class _A1, class _A2>
inline _LIBCPP_INLINE_VISIBILITY
@@ -1020,7 +1020,7 @@
// sin
-#if !(defined(_AIX) || defined(__sun__))
+# if !defined(__sun__)
inline _LIBCPP_INLINE_VISIBILITY float sin(float __lcpp_x) _NOEXCEPT {return ::sinf(__lcpp_x);}
inline _LIBCPP_INLINE_VISIBILITY long double sin(long double __lcpp_x) _NOEXCEPT {return ::sinl(__lcpp_x);}
#endif
@@ -1032,10 +1032,10 @@
// sinh
-#if !(defined(_AIX) || defined(__sun__))
+# if !defined(__sun__)
inline _LIBCPP_INLINE_VISIBILITY float sinh(float __lcpp_x) _NOEXCEPT {return ::sinhf(__lcpp_x);}
inline _LIBCPP_INLINE_VISIBILITY long double sinh(long double __lcpp_x) _NOEXCEPT {return ::sinhl(__lcpp_x);}
-#endif
+# endif
template <class _A1>
inline _LIBCPP_INLINE_VISIBILITY
@@ -1044,10 +1044,10 @@
// sqrt
-#if !(defined(_AIX) || defined(__sun__))
+# if !defined(__sun__)
inline _LIBCPP_INLINE_VISIBILITY float sqrt(float __lcpp_x) _NOEXCEPT {return ::sqrtf(__lcpp_x);}
inline _LIBCPP_INLINE_VISIBILITY long double sqrt(long double __lcpp_x) _NOEXCEPT {return ::sqrtl(__lcpp_x);}
-#endif
+# endif
template <class _A1>
inline _LIBCPP_INLINE_VISIBILITY
@@ -1056,10 +1056,10 @@
// tan
-#if !(defined(_AIX) || defined(__sun__))
+# if !defined(__sun__)
inline _LIBCPP_INLINE_VISIBILITY float tan(float __lcpp_x) _NOEXCEPT {return ::tanf(__lcpp_x);}
inline _LIBCPP_INLINE_VISIBILITY long double tan(long double __lcpp_x) _NOEXCEPT {return ::tanl(__lcpp_x);}
-#endif
+# endif
template <class _A1>
inline _LIBCPP_INLINE_VISIBILITY
@@ -1068,10 +1068,10 @@
// tanh
-#if !(defined(_AIX) || defined(__sun__))
+# if !defined(__sun__)
inline _LIBCPP_INLINE_VISIBILITY float tanh(float __lcpp_x) _NOEXCEPT {return ::tanhf(__lcpp_x);}
inline _LIBCPP_INLINE_VISIBILITY long double tanh(long double __lcpp_x) _NOEXCEPT {return ::tanhl(__lcpp_x);}
-#endif
+# endif
template <class _A1>
inline _LIBCPP_INLINE_VISIBILITY