diff mbox series

libstdc++: testsuite: use cmath long double overloads

Message ID ork09aefuy.fsf@lxoliva.fsfla.org
State New
Headers show
Series libstdc++: testsuite: use cmath long double overloads | expand

Commit Message

Alexandre Oliva June 21, 2022, 5:37 a.m. UTC
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(-)

Comments

Alexandre Oliva June 27, 2022, 10:19 a.m. UTC | #1
On Jun 21, 2022, Alexandre Oliva <oliva@adacore.com> wrote:

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

Ping?

https://gcc.gnu.org/pipermail/gcc-patches/2022-June/596921.html
Jonathan Wakely June 27, 2022, 11:01 a.m. UTC | #2
On Tue, 21 Jun 2022 at 06:39, Alexandre Oliva via Libstdc++
<libstdc++@gcc.gnu.org> wrote:
>
>
> 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?

OK


>
>
> 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>
>
diff mbox series

Patch

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;