Index: include/cmath =================================================================== --- include/cmath +++ include/cmath @@ -1109,8 +1109,16 @@ using ::copysign; using ::copysignf; -inline _LIBCPP_INLINE_VISIBILITY float copysign(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return copysignf(__lcpp_x, __lcpp_y);} -inline _LIBCPP_INLINE_VISIBILITY long double copysign(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return copysignl(__lcpp_x, __lcpp_y);} +#if !defined(_VC_CRT_MAJOR_VERSION) || (_VC_CRT_MAJOR_VERSION < 12) +inline _LIBCPP_INLINE_VISIBILITY float copysign(float __lcpp_x, + float __lcpp_y) _NOEXCEPT { + return copysignf(__lcpp_x, __lcpp_y); +} +inline _LIBCPP_INLINE_VISIBILITY long double +copysign(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT { + return copysignl(__lcpp_x, __lcpp_y); +} +#endif template inline _LIBCPP_INLINE_VISIBILITY Index: include/support/win32/math_win32.h =================================================================== --- include/support/win32/math_win32.h +++ include/support/win32/math_win32.h @@ -17,7 +17,9 @@ #include #include // _FPCLASS_PN etc. +#include +#if ((_VC_CRT_MAJOR_VERSION-0) < 12) // Necessary? typedef float float_t; typedef double double_t; @@ -109,7 +111,7 @@ { return _fpclass(num); } - +#endif #endif // _LIBCPP_MSVCRT #endif // _LIBCPP_SUPPORT_WIN32_MATH_WIN32_H