diff options
Diffstat (limited to 'libcxx/test')
| -rw-r--r-- | libcxx/test/std/numerics/c.math/cmath.pass.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/libcxx/test/std/numerics/c.math/cmath.pass.cpp b/libcxx/test/std/numerics/c.math/cmath.pass.cpp index b5f586492bd..cc535e37439 100644 --- a/libcxx/test/std/numerics/c.math/cmath.pass.cpp +++ b/libcxx/test/std/numerics/c.math/cmath.pass.cpp @@ -661,11 +661,12 @@ void test_isinf() static_assert((std::is_same<decltype(std::isinf((float)0)), bool>::value), ""); typedef decltype(std::isinf((double)0)) DoubleRetType; -#ifndef __linux__ +#if !defined(__linux__) || defined(__clang__) static_assert((std::is_same<DoubleRetType, bool>::value), ""); #else - // GLIBC < 2.26 defines 'isinf(double)' with a return type of 'int' in - // all C++ dialects. The test should tolerate this. + // GLIBC < 2.23 defines 'isinf(double)' with a return type of 'int' in + // all C++ dialects. The test should tolerate this when libc++ can't work + // around it. // See: https://sourceware.org/bugzilla/show_bug.cgi?id=19439 static_assert((std::is_same<DoubleRetType, bool>::value || std::is_same<DoubleRetType, int>::value), ""); @@ -746,11 +747,12 @@ void test_isnan() static_assert((std::is_same<decltype(std::isnan((float)0)), bool>::value), ""); typedef decltype(std::isnan((double)0)) DoubleRetType; -#ifndef __linux__ +#if !defined(__linux__) || defined(__clang__) static_assert((std::is_same<DoubleRetType, bool>::value), ""); #else - // GLIBC < 2.26 defines 'isnan(double)' with a return type of 'int' in - // all C++ dialects. The test should tolerate this. + // GLIBC < 2.23 defines 'isinf(double)' with a return type of 'int' in + // all C++ dialects. The test should tolerate this when libc++ can't work + // around it. // See: https://sourceware.org/bugzilla/show_bug.cgi?id=19439 static_assert((std::is_same<DoubleRetType, bool>::value || std::is_same<DoubleRetType, int>::value), ""); |

