libstdc++: testsuite: use cmath long double overloads
authorAlexandre Oliva <oliva@adacore.com>
Mon, 27 Jun 2022 13:34:19 +0000 (10:34 -0300)
committerAlexandre Oliva <oliva@gnu.org>
Mon, 27 Jun 2022 13:34:19 +0000 (10:34 -0300)
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.

for  libstdc++-v3/ChangeLog

* testsuite/20_util/to_chars/long_double.cc: Use cmath
long double overloads for nexttoward and ldexp.

libstdc++-v3/testsuite/20_util/to_chars/long_double.cc

index 0b1c2c2..4983881 100644 (file)
@@ -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;