In case we need to supplement the C standard library with additional definitions for float and long double, the declarations expected to be in the C headers may not be there. Rely on the cmath overloads instead.
Regstrapped on x86_64-linux-gnu, also tested with a cross to aarch64-rtems6. Ok to install? for libstdc++-v3/ChangeLog * testsuite/20_util/to_chars/long_double.cc: Use cmath long double overloads for nexttoward and ldexp. --- .../testsuite/20_util/to_chars/long_double.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libstdc++-v3/testsuite/20_util/to_chars/long_double.cc b/libstdc++-v3/testsuite/20_util/to_chars/long_double.cc index 0b1c2c2936fdc..498388110b179 100644 --- a/libstdc++-v3/testsuite/20_util/to_chars/long_double.cc +++ b/libstdc++-v3/testsuite/20_util/to_chars/long_double.cc @@ -54,11 +54,11 @@ namespace detail { long double nextupl(long double x) - { return nexttowardl(x, numeric_limits<long double>::infinity()); } + { return nexttoward(x, numeric_limits<long double>::infinity()); } long double nextdownl(long double x) - { return nexttowardl(x, -numeric_limits<long double>::infinity()); } + { return nexttoward(x, -numeric_limits<long double>::infinity()); } } // The long double overloads of std::to_chars currently just go through printf @@ -138,7 +138,7 @@ test01() for (int exponent : {-11000, -3000, -300, -50, -7, 0, 7, 50, 300, 3000, 11000}) for (long double testcase : hex_testcases) { - testcase = ldexpl(testcase, exponent); + testcase = ldexp(testcase, exponent); if (testcase == 0.0L || isinf(testcase)) continue; -- Alexandre Oliva, happy hacker https://FSFLA.org/blogs/lxo/ Free Software Activist GNU Toolchain Engineer Disinformation flourishes because many people care deeply about injustice but very few check the facts. Ask me about <https://stallmansupport.org>