mirror of
https://git.savannah.gnu.org/git/gnulib.git
synced 2025-08-08 17:22:05 +03:00
Use a more portable replacement expression for -0.0L.
This commit is contained in:
78
ChangeLog
78
ChangeLog
@@ -1,3 +1,81 @@
|
||||
2008-10-07 Bruno Haible <bruno@clisp.org>
|
||||
|
||||
Use a more portable replacement expression for -0.0L.
|
||||
* m4/signbit.m4 (gl_SIGNBIT_TEST_PROGRAM): Use -LDBL_MIN * LDBL_MIN
|
||||
instead of -0.0L. Fix m4 quotation.
|
||||
|
||||
* tests/test-signbit.c: Include <float.h>.
|
||||
(minus_zero): New variable.
|
||||
(test_signbitl): Use minus_zero instead of -zero.
|
||||
* modules/signbit-tests (Depends-on): Add float.
|
||||
|
||||
* tests/test-ceill.c: Include <float.h>.
|
||||
(zero): Remove variable.
|
||||
(minus_zero): New variable.
|
||||
(main): Use minus_zero instead of -zero.
|
||||
* modules/ceill-tests (Depends-on): Add float.
|
||||
|
||||
* tests/test-floorl.c: Include <float.h>.
|
||||
(zero): Remove variable.
|
||||
(minus_zero): New variable.
|
||||
(main): Use minus_zero instead of -zero.
|
||||
* modules/floorl-tests (Depends-on): Add float.
|
||||
|
||||
* tests/test-roundl.c: Include <float.h>.
|
||||
(zero): Remove variable.
|
||||
(minus_zero): New variable.
|
||||
(main): Use minus_zero instead of -zero.
|
||||
* modules/roundl-tests (Depends-on): Add float.
|
||||
|
||||
* tests/test-truncl.c: Include <float.h>.
|
||||
(zero): Remove variable.
|
||||
(minus_zero): New variable.
|
||||
(main): Use minus_zero instead of -zero.
|
||||
* modules/truncl-tests (Depends-on): Add float.
|
||||
|
||||
* tests/test-frexpl.c (zero): Remove variable.
|
||||
(minus_zero): New variable.
|
||||
(main): Use minus_zero instead of -zero.
|
||||
* modules/frexpl-tests (Depends-on): Add float.
|
||||
|
||||
* tests/test-isnan.c (zerol): Remove variable.
|
||||
(minus_zerol): New variable.
|
||||
(test_long_double): Use minus_zerol instead of -zerol.
|
||||
* modules/isnan-tests (Depends-on): Add float.
|
||||
|
||||
* tests/test-isnanl.h (zero): Remove variable.
|
||||
(minus_zero): New variable.
|
||||
(main): Use minus_zero instead of -zero.
|
||||
* modules/isnanl-nolibm-tests (Depends-on): Add float.
|
||||
* modules/isnanl-tests (Depends-on): Add float.
|
||||
|
||||
* tests/test-ldexpl.c (zero): Remove variable.
|
||||
(minus_zero): New variable.
|
||||
(main): Use minus_zero instead of -zero.
|
||||
* modules/ldexpl-tests (Depends-on): Add float.
|
||||
|
||||
* tests/test-snprintf-posix.h (zerol): Remove variable.
|
||||
(minus_zerol): New variable.
|
||||
(test_function): Use minus_zerol instead of -zerol.
|
||||
* modules/snprintf-posix-tests (Depends-on): Add float.
|
||||
* modules/vsnprintf-posix-tests (Depends-on): Add float.
|
||||
|
||||
* tests/test-sprintf-posix.h (zerol): Remove variable.
|
||||
(minus_zerol): New variable.
|
||||
(test_function): Use minus_zerol instead of -zerol.
|
||||
* modules/sprintf-posix-tests (Depends-on): Add float.
|
||||
* modules/vsprintf-posix-tests (Depends-on): Add float.
|
||||
|
||||
* tests/test-vasnprintf-posix.c (zerol): Remove variable.
|
||||
(minus_zerol): New variable.
|
||||
(test_function): Use minus_zerol instead of -zerol.
|
||||
* modules/vasnprintf-posix-tests (Depends-on): Add float.
|
||||
|
||||
* tests/test-vasprintf-posix.c (zerol): Remove variable.
|
||||
(minus_zerol): New variable.
|
||||
(test_function): Use minus_zerol instead of -zerol.
|
||||
* modules/vasprintf-posix-tests (Depends-on): Add float.
|
||||
|
||||
2008-10-07 Simon Josefsson <simon@josefsson.org>
|
||||
|
||||
* MODULES.html.sh (Support for building documentation): Mention
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# signbit.m4 serial 3
|
||||
# signbit.m4 serial 4
|
||||
dnl Copyright (C) 2007-2008 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
@@ -123,15 +123,21 @@ AC_DEFUN([gl_SIGNBIT],
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([gl_SIGNBIT_TEST_PROGRAM], [
|
||||
AC_DEFUN([gl_SIGNBIT_TEST_PROGRAM], [[
|
||||
/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
|
||||
So we use -p0f instead. */
|
||||
So we use -p0f and -p0d instead. */
|
||||
float p0f = 0.0f;
|
||||
float m0f = -p0f;
|
||||
double p0d = 0.0;
|
||||
double m0d = -p0d;
|
||||
/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
|
||||
So we use another constant expression instead. */
|
||||
long double p0l = 0.0L;
|
||||
#ifdef __hpux
|
||||
long double m0l = -LDBL_MIN * LDBL_MIN;
|
||||
#else
|
||||
long double m0l = -p0l;
|
||||
#endif
|
||||
int main ()
|
||||
{
|
||||
{
|
||||
@@ -169,7 +175,7 @@ int main ()
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
])
|
||||
]])
|
||||
|
||||
AC_DEFUN([gl_FLOAT_SIGN_LOCATION],
|
||||
[
|
||||
|
@@ -4,6 +4,7 @@ tests/test-ceill.c
|
||||
Depends-on:
|
||||
fpucw
|
||||
isnanl-nolibm
|
||||
float
|
||||
|
||||
configure.ac:
|
||||
|
||||
|
@@ -4,6 +4,7 @@ tests/test-floorl.c
|
||||
Depends-on:
|
||||
fpucw
|
||||
isnanl-nolibm
|
||||
float
|
||||
|
||||
configure.ac:
|
||||
|
||||
|
@@ -5,6 +5,7 @@ Depends-on:
|
||||
fpucw
|
||||
isnanl-nolibm
|
||||
signbit
|
||||
float
|
||||
|
||||
configure.ac:
|
||||
|
||||
|
@@ -3,6 +3,7 @@ tests/test-isnan.c
|
||||
tests/nan.h
|
||||
|
||||
Depends-on:
|
||||
float
|
||||
|
||||
configure.ac:
|
||||
gl_FLOAT_EXPONENT_LOCATION
|
||||
|
@@ -3,6 +3,7 @@ tests/test-isnanl-nolibm.c
|
||||
tests/test-isnanl.h
|
||||
|
||||
Depends-on:
|
||||
float
|
||||
|
||||
configure.ac:
|
||||
gl_LONG_DOUBLE_EXPONENT_LOCATION
|
||||
|
@@ -3,6 +3,7 @@ tests/test-isnanl.c
|
||||
tests/test-isnanl.h
|
||||
|
||||
Depends-on:
|
||||
float
|
||||
|
||||
configure.ac:
|
||||
gl_LONG_DOUBLE_EXPONENT_LOCATION
|
||||
|
@@ -5,6 +5,7 @@ Depends-on:
|
||||
fpucw
|
||||
isnanl-nolibm
|
||||
signbit
|
||||
float
|
||||
|
||||
configure.ac:
|
||||
|
||||
|
@@ -4,6 +4,7 @@ tests/test-roundl.c
|
||||
Depends-on:
|
||||
fpucw
|
||||
isnanl-nolibm
|
||||
float
|
||||
|
||||
configure.ac:
|
||||
|
||||
|
@@ -5,6 +5,7 @@ m4/exponentd.m4
|
||||
m4/exponentl.m4
|
||||
|
||||
Depends-on:
|
||||
float
|
||||
|
||||
configure.ac:
|
||||
AC_REQUIRE([gl_FLOAT_EXPONENT_LOCATION])
|
||||
|
@@ -6,6 +6,7 @@ tests/nan.h
|
||||
|
||||
Depends-on:
|
||||
stdint
|
||||
float
|
||||
|
||||
configure.ac:
|
||||
AC_DEFINE([CHECK_SNPRINTF_POSIX], 1,
|
||||
|
@@ -5,6 +5,7 @@ tests/nan.h
|
||||
|
||||
Depends-on:
|
||||
stdint
|
||||
float
|
||||
|
||||
configure.ac:
|
||||
|
||||
|
@@ -4,6 +4,7 @@ tests/test-truncl.c
|
||||
Depends-on:
|
||||
fpucw
|
||||
isnanl-nolibm
|
||||
float
|
||||
|
||||
configure.ac:
|
||||
|
||||
|
@@ -7,6 +7,7 @@ m4/locale-fr.m4
|
||||
|
||||
Depends-on:
|
||||
stdint
|
||||
float
|
||||
|
||||
configure.ac:
|
||||
gt_LOCALE_FR
|
||||
|
@@ -4,6 +4,7 @@ tests/nan.h
|
||||
|
||||
Depends-on:
|
||||
stdint
|
||||
float
|
||||
|
||||
configure.ac:
|
||||
|
||||
|
@@ -6,6 +6,7 @@ tests/nan.h
|
||||
|
||||
Depends-on:
|
||||
stdint
|
||||
float
|
||||
|
||||
configure.ac:
|
||||
AC_DEFINE([CHECK_VSNPRINTF_POSIX], 1,
|
||||
|
@@ -5,6 +5,7 @@ tests/nan.h
|
||||
|
||||
Depends-on:
|
||||
stdint
|
||||
float
|
||||
|
||||
configure.ac:
|
||||
|
||||
|
@@ -20,6 +20,7 @@
|
||||
|
||||
#include <math.h>
|
||||
|
||||
#include <float.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
@@ -38,9 +39,9 @@
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0L.
|
||||
So we use -zero instead. */
|
||||
long double zero = 0.0L;
|
||||
/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
|
||||
So we use minus_zero instead. */
|
||||
long double minus_zero = -LDBL_MIN * LDBL_MIN;
|
||||
|
||||
int
|
||||
main ()
|
||||
@@ -51,7 +52,7 @@ main ()
|
||||
|
||||
/* Zero. */
|
||||
ASSERT (ceill (0.0L) == 0.0L);
|
||||
ASSERT (ceill (-zero) == 0.0L);
|
||||
ASSERT (ceill (minus_zero) == 0.0L);
|
||||
/* Positive numbers. */
|
||||
ASSERT (ceill (0.3L) == 1.0L);
|
||||
ASSERT (ceill (0.7L) == 1.0L);
|
||||
|
@@ -20,6 +20,7 @@
|
||||
|
||||
#include <math.h>
|
||||
|
||||
#include <float.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
@@ -38,9 +39,9 @@
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0L.
|
||||
So we use -zero instead. */
|
||||
long double zero = 0.0L;
|
||||
/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
|
||||
So we use minus_zero instead. */
|
||||
long double minus_zero = -LDBL_MIN * LDBL_MIN;
|
||||
|
||||
int
|
||||
main ()
|
||||
@@ -51,7 +52,7 @@ main ()
|
||||
|
||||
/* Zero. */
|
||||
ASSERT (floorl (0.0L) == 0.0L);
|
||||
ASSERT (floorl (-zero) == 0.0L);
|
||||
ASSERT (floorl (minus_zero) == 0.0L);
|
||||
/* Positive numbers. */
|
||||
ASSERT (floorl (0.3L) == 0.0L);
|
||||
ASSERT (floorl (0.7L) == 0.0L);
|
||||
|
@@ -57,9 +57,9 @@
|
||||
# define MIN_NORMAL_EXP LDBL_MIN_EXP
|
||||
#endif
|
||||
|
||||
/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0L.
|
||||
So we use -zero instead. */
|
||||
long double zero = 0.0L;
|
||||
/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
|
||||
So we use minus_zero instead. */
|
||||
long double minus_zero = -LDBL_MIN * LDBL_MIN;
|
||||
|
||||
static long double
|
||||
my_ldexp (long double x, int d)
|
||||
@@ -117,7 +117,7 @@ main ()
|
||||
{ /* Negative zero. */
|
||||
int exp = -9999;
|
||||
long double mantissa;
|
||||
x = -zero;
|
||||
x = minus_zero;
|
||||
mantissa = frexpl (x, &exp);
|
||||
ASSERT (exp == 0);
|
||||
ASSERT (mantissa == x);
|
||||
|
@@ -48,9 +48,9 @@ float zerof = 0.0f;
|
||||
So we use -zero instead. */
|
||||
double zerod = 0.0;
|
||||
|
||||
/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0L.
|
||||
So we use -zero instead. */
|
||||
long double zerol = 0.0L;
|
||||
/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
|
||||
So we use minus_zerol instead. */
|
||||
long double minus_zerol = -LDBL_MIN * LDBL_MIN;
|
||||
|
||||
static void
|
||||
test_float (void)
|
||||
@@ -146,7 +146,7 @@ test_long_double (void)
|
||||
ASSERT (!isnan (-2.718e30L));
|
||||
ASSERT (!isnan (-2.718e-30L));
|
||||
ASSERT (!isnan (0.0L));
|
||||
ASSERT (!isnan (-zerol));
|
||||
ASSERT (!isnan (minus_zerol));
|
||||
/* Infinite values. */
|
||||
ASSERT (!isnan (1.0L / 0.0L));
|
||||
ASSERT (!isnan (-1.0L / 0.0L));
|
||||
|
@@ -33,9 +33,9 @@
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0L.
|
||||
So we use -zero instead. */
|
||||
long double zero = 0.0L;
|
||||
/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
|
||||
So we use minus_zero instead. */
|
||||
long double minus_zero = -LDBL_MIN * LDBL_MIN;
|
||||
|
||||
int
|
||||
main ()
|
||||
@@ -53,7 +53,7 @@ main ()
|
||||
ASSERT (!isnanl (-2.718e30L));
|
||||
ASSERT (!isnanl (-2.718e-30L));
|
||||
ASSERT (!isnanl (0.0L));
|
||||
ASSERT (!isnanl (-zero));
|
||||
ASSERT (!isnanl (minus_zero));
|
||||
/* Infinite values. */
|
||||
ASSERT (!isnanl (1.0L / 0.0L));
|
||||
ASSERT (!isnanl (-1.0L / 0.0L));
|
||||
|
@@ -39,9 +39,9 @@
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0L.
|
||||
So we use -zero instead. */
|
||||
long double zero = 0.0L;
|
||||
/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
|
||||
So we use minus_zero instead. */
|
||||
long double minus_zero = -LDBL_MIN * LDBL_MIN;
|
||||
|
||||
int
|
||||
main ()
|
||||
@@ -82,7 +82,7 @@ main ()
|
||||
}
|
||||
|
||||
{ /* Negative zero. */
|
||||
x = -zero;
|
||||
x = minus_zero;
|
||||
y = ldexpl (x, 0); ASSERT (y == x); ASSERT (signbit (x));
|
||||
y = ldexpl (x, 5); ASSERT (y == x); ASSERT (signbit (x));
|
||||
y = ldexpl (x, -5); ASSERT (y == x); ASSERT (signbit (x));
|
||||
|
@@ -22,6 +22,7 @@
|
||||
|
||||
#include <math.h>
|
||||
|
||||
#include <float.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
@@ -40,9 +41,9 @@
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0L.
|
||||
So we use -zero instead. */
|
||||
long double zero = 0.0L;
|
||||
/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
|
||||
So we use minus_zero instead. */
|
||||
long double minus_zero = -LDBL_MIN * LDBL_MIN;
|
||||
|
||||
int
|
||||
main ()
|
||||
@@ -53,7 +54,7 @@ main ()
|
||||
|
||||
/* Zero. */
|
||||
ASSERT (roundl (0.0L) == 0.0L);
|
||||
ASSERT (roundl (-zero) == 0.0L);
|
||||
ASSERT (roundl (minus_zero) == 0.0L);
|
||||
/* Positive numbers. */
|
||||
ASSERT (roundl (0.3L) == 0.0L);
|
||||
ASSERT (roundl (0.5L) == 1.0L);
|
||||
|
@@ -20,6 +20,7 @@
|
||||
|
||||
#include <math.h>
|
||||
|
||||
#include <float.h>
|
||||
#include <limits.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
@@ -40,6 +41,16 @@ float zerof = 0.0f;
|
||||
double zerod = 0.0;
|
||||
long double zerol = 0.0L;
|
||||
|
||||
/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0f.
|
||||
So we use -zerof instead. */
|
||||
|
||||
/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
|
||||
So we use -zerod instead. */
|
||||
|
||||
/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
|
||||
So we use minus_zerol instead. */
|
||||
long double minus_zerol = -LDBL_MIN * LDBL_MIN;
|
||||
|
||||
static void
|
||||
test_signbitf ()
|
||||
{
|
||||
@@ -140,10 +151,10 @@ test_signbitl ()
|
||||
ASSERT (signbit (-2.718e-30L));
|
||||
/* Zeros. */
|
||||
ASSERT (!signbit (0.0L));
|
||||
if (1.0L / -zerol < 0)
|
||||
ASSERT (signbit (-zerol));
|
||||
if (1.0L / minus_zerol < 0)
|
||||
ASSERT (signbit (minus_zerol));
|
||||
else
|
||||
ASSERT (!signbit (-zerol));
|
||||
ASSERT (!signbit (minus_zerol));
|
||||
/* Infinite values. */
|
||||
ASSERT (!signbit (1.0L / 0.0L));
|
||||
ASSERT (signbit (-1.0L / 0.0L));
|
||||
|
@@ -28,12 +28,12 @@ have_minus_zero ()
|
||||
}
|
||||
|
||||
/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
|
||||
So we use -zero instead. */
|
||||
So we use -zerod instead. */
|
||||
double zerod = 0.0;
|
||||
|
||||
/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0L.
|
||||
So we use -zero instead. */
|
||||
long double zerol = 0.0L;
|
||||
/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
|
||||
So we use minus_zerol instead. */
|
||||
long double minus_zerol = -LDBL_MIN * LDBL_MIN;
|
||||
|
||||
/* Representation of an 80-bit 'long double' as an initializer for a sequence
|
||||
of 'unsigned int' words. */
|
||||
@@ -444,7 +444,7 @@ test_function (int (*my_snprintf) (char *, size_t, const char *, ...))
|
||||
{ /* Negative zero. */
|
||||
char result[100];
|
||||
int retval =
|
||||
my_snprintf (result, sizeof (result), "%La %d", -zerol, 33, 44, 55);
|
||||
my_snprintf (result, sizeof (result), "%La %d", minus_zerol, 33, 44, 55);
|
||||
if (have_minus_zero ())
|
||||
ASSERT (strcmp (result, "-0x0p+0 33") == 0);
|
||||
ASSERT (retval == strlen (result));
|
||||
@@ -1146,7 +1146,7 @@ test_function (int (*my_snprintf) (char *, size_t, const char *, ...))
|
||||
{ /* Negative zero. */
|
||||
char result[100];
|
||||
int retval =
|
||||
my_snprintf (result, sizeof (result), "%Lf %d", -zerol, 33, 44, 55);
|
||||
my_snprintf (result, sizeof (result), "%Lf %d", minus_zerol, 33, 44, 55);
|
||||
if (have_minus_zero ())
|
||||
ASSERT (strcmp (result, "-0.000000 33") == 0);
|
||||
ASSERT (retval == strlen (result));
|
||||
@@ -1513,7 +1513,7 @@ test_function (int (*my_snprintf) (char *, size_t, const char *, ...))
|
||||
{ /* Negative zero. */
|
||||
char result[100];
|
||||
int retval =
|
||||
my_snprintf (result, sizeof (result), "%LF %d", -zerol, 33, 44, 55);
|
||||
my_snprintf (result, sizeof (result), "%LF %d", minus_zerol, 33, 44, 55);
|
||||
if (have_minus_zero ())
|
||||
ASSERT (strcmp (result, "-0.000000 33") == 0);
|
||||
ASSERT (retval == strlen (result));
|
||||
@@ -2015,7 +2015,7 @@ test_function (int (*my_snprintf) (char *, size_t, const char *, ...))
|
||||
{ /* Negative zero. */
|
||||
char result[100];
|
||||
int retval =
|
||||
my_snprintf (result, sizeof (result), "%Le %d", -zerol, 33, 44, 55);
|
||||
my_snprintf (result, sizeof (result), "%Le %d", minus_zerol, 33, 44, 55);
|
||||
if (have_minus_zero ())
|
||||
ASSERT (strcmp (result, "-0.000000e+00 33") == 0
|
||||
|| strcmp (result, "-0.000000e+000 33") == 0);
|
||||
@@ -2668,7 +2668,7 @@ test_function (int (*my_snprintf) (char *, size_t, const char *, ...))
|
||||
{ /* Negative zero. */
|
||||
char result[100];
|
||||
int retval =
|
||||
my_snprintf (result, sizeof (result), "%Lg %d", -zerol, 33, 44, 55);
|
||||
my_snprintf (result, sizeof (result), "%Lg %d", minus_zerol, 33, 44, 55);
|
||||
if (have_minus_zero ())
|
||||
ASSERT (strcmp (result, "-0 33") == 0);
|
||||
ASSERT (retval == strlen (result));
|
||||
|
@@ -28,12 +28,12 @@ have_minus_zero ()
|
||||
}
|
||||
|
||||
/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
|
||||
So we use -zero instead. */
|
||||
So we use -zerod instead. */
|
||||
double zerod = 0.0;
|
||||
|
||||
/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0L.
|
||||
So we use -zero instead. */
|
||||
long double zerol = 0.0L;
|
||||
/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
|
||||
So we use minus_zerol instead. */
|
||||
long double minus_zerol = -LDBL_MIN * LDBL_MIN;
|
||||
|
||||
/* Representation of an 80-bit 'long double' as an initializer for a sequence
|
||||
of 'unsigned int' words. */
|
||||
@@ -430,7 +430,7 @@ test_function (int (*my_sprintf) (char *, const char *, ...))
|
||||
{ /* Negative zero. */
|
||||
char result[1000];
|
||||
int retval =
|
||||
my_sprintf (result, "%La %d", -zerol, 33, 44, 55);
|
||||
my_sprintf (result, "%La %d", minus_zerol, 33, 44, 55);
|
||||
if (have_minus_zero ())
|
||||
ASSERT (strcmp (result, "-0x0p+0 33") == 0);
|
||||
ASSERT (retval == strlen (result));
|
||||
@@ -1132,7 +1132,7 @@ test_function (int (*my_sprintf) (char *, const char *, ...))
|
||||
{ /* Negative zero. */
|
||||
char result[1000];
|
||||
int retval =
|
||||
my_sprintf (result, "%Lf %d", -zerol, 33, 44, 55);
|
||||
my_sprintf (result, "%Lf %d", minus_zerol, 33, 44, 55);
|
||||
if (have_minus_zero ())
|
||||
ASSERT (strcmp (result, "-0.000000 33") == 0);
|
||||
ASSERT (retval == strlen (result));
|
||||
@@ -1499,7 +1499,7 @@ test_function (int (*my_sprintf) (char *, const char *, ...))
|
||||
{ /* Negative zero. */
|
||||
char result[1000];
|
||||
int retval =
|
||||
my_sprintf (result, "%LF %d", -zerol, 33, 44, 55);
|
||||
my_sprintf (result, "%LF %d", minus_zerol, 33, 44, 55);
|
||||
if (have_minus_zero ())
|
||||
ASSERT (strcmp (result, "-0.000000 33") == 0);
|
||||
ASSERT (retval == strlen (result));
|
||||
@@ -2001,7 +2001,7 @@ test_function (int (*my_sprintf) (char *, const char *, ...))
|
||||
{ /* Negative zero. */
|
||||
char result[1000];
|
||||
int retval =
|
||||
my_sprintf (result, "%Le %d", -zerol, 33, 44, 55);
|
||||
my_sprintf (result, "%Le %d", minus_zerol, 33, 44, 55);
|
||||
if (have_minus_zero ())
|
||||
ASSERT (strcmp (result, "-0.000000e+00 33") == 0
|
||||
|| strcmp (result, "-0.000000e+000 33") == 0);
|
||||
@@ -2654,7 +2654,7 @@ test_function (int (*my_sprintf) (char *, const char *, ...))
|
||||
{ /* Negative zero. */
|
||||
char result[1000];
|
||||
int retval =
|
||||
my_sprintf (result, "%Lg %d", -zerol, 33, 44, 55);
|
||||
my_sprintf (result, "%Lg %d", minus_zerol, 33, 44, 55);
|
||||
if (have_minus_zero ())
|
||||
ASSERT (strcmp (result, "-0 33") == 0);
|
||||
ASSERT (retval == strlen (result));
|
||||
|
@@ -20,6 +20,7 @@
|
||||
|
||||
#include <math.h>
|
||||
|
||||
#include <float.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
@@ -38,9 +39,9 @@
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0L.
|
||||
So we use -zero instead. */
|
||||
long double zero = 0.0L;
|
||||
/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
|
||||
So we use minus_zero instead. */
|
||||
long double minus_zero = -LDBL_MIN * LDBL_MIN;
|
||||
|
||||
int
|
||||
main ()
|
||||
@@ -51,7 +52,7 @@ main ()
|
||||
|
||||
/* Zero. */
|
||||
ASSERT (truncl (0.0L) == 0.0L);
|
||||
ASSERT (truncl (-zero) == 0.0L);
|
||||
ASSERT (truncl (minus_zero) == 0.0L);
|
||||
/* Positive numbers. */
|
||||
ASSERT (truncl (0.3L) == 0.0L);
|
||||
ASSERT (truncl (0.7L) == 0.0L);
|
||||
|
@@ -53,12 +53,12 @@ have_minus_zero ()
|
||||
}
|
||||
|
||||
/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
|
||||
So we use -zero instead. */
|
||||
So we use -zerod instead. */
|
||||
double zerod = 0.0;
|
||||
|
||||
/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0L.
|
||||
So we use -zero instead. */
|
||||
long double zerol = 0.0L;
|
||||
/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
|
||||
So we use minus_zerol instead. */
|
||||
long double minus_zerol = -LDBL_MIN * LDBL_MIN;
|
||||
|
||||
/* Representation of an 80-bit 'long double' as an initializer for a sequence
|
||||
of 'unsigned int' words. */
|
||||
@@ -539,7 +539,7 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...))
|
||||
{ /* Negative zero. */
|
||||
size_t length;
|
||||
char *result =
|
||||
my_asnprintf (NULL, &length, "%La %d", -zerol, 33, 44, 55);
|
||||
my_asnprintf (NULL, &length, "%La %d", minus_zerol, 33, 44, 55);
|
||||
ASSERT (result != NULL);
|
||||
if (have_minus_zero ())
|
||||
ASSERT (strcmp (result, "-0x0p+0 33") == 0);
|
||||
@@ -1351,7 +1351,7 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...))
|
||||
{ /* Negative zero. */
|
||||
size_t length;
|
||||
char *result =
|
||||
my_asnprintf (NULL, &length, "%Lf %d", -zerol, 33, 44, 55);
|
||||
my_asnprintf (NULL, &length, "%Lf %d", minus_zerol, 33, 44, 55);
|
||||
ASSERT (result != NULL);
|
||||
if (have_minus_zero ())
|
||||
ASSERT (strcmp (result, "-0.000000 33") == 0);
|
||||
@@ -1798,7 +1798,7 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...))
|
||||
{ /* Negative zero. */
|
||||
size_t length;
|
||||
char *result =
|
||||
my_asnprintf (NULL, &length, "%LF %d", -zerol, 33, 44, 55);
|
||||
my_asnprintf (NULL, &length, "%LF %d", minus_zerol, 33, 44, 55);
|
||||
ASSERT (result != NULL);
|
||||
if (have_minus_zero ())
|
||||
ASSERT (strcmp (result, "-0.000000 33") == 0);
|
||||
@@ -2372,7 +2372,7 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...))
|
||||
{ /* Negative zero. */
|
||||
size_t length;
|
||||
char *result =
|
||||
my_asnprintf (NULL, &length, "%Le %d", -zerol, 33, 44, 55);
|
||||
my_asnprintf (NULL, &length, "%Le %d", minus_zerol, 33, 44, 55);
|
||||
ASSERT (result != NULL);
|
||||
if (have_minus_zero ())
|
||||
ASSERT (strcmp (result, "-0.000000e+00 33") == 0
|
||||
@@ -3127,7 +3127,7 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...))
|
||||
{ /* Negative zero. */
|
||||
size_t length;
|
||||
char *result =
|
||||
my_asnprintf (NULL, &length, "%Lg %d", -zerol, 33, 44, 55);
|
||||
my_asnprintf (NULL, &length, "%Lg %d", minus_zerol, 33, 44, 55);
|
||||
ASSERT (result != NULL);
|
||||
if (have_minus_zero ())
|
||||
ASSERT (strcmp (result, "-0 33") == 0);
|
||||
|
@@ -53,12 +53,12 @@ have_minus_zero ()
|
||||
}
|
||||
|
||||
/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0.
|
||||
So we use -zero instead. */
|
||||
So we use -zerod instead. */
|
||||
double zerod = 0.0;
|
||||
|
||||
/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0L.
|
||||
So we use -zero instead. */
|
||||
long double zerol = 0.0L;
|
||||
/* On HP-UX 10.20, negating 0.0L does not yield -0.0L.
|
||||
So we use minus_zerol instead. */
|
||||
long double minus_zerol = -LDBL_MIN * LDBL_MIN;
|
||||
|
||||
/* Representation of an 80-bit 'long double' as an initializer for a sequence
|
||||
of 'unsigned int' words. */
|
||||
@@ -520,7 +520,7 @@ test_function (int (*my_asprintf) (char **, const char *, ...))
|
||||
{ /* Negative zero. */
|
||||
char *result;
|
||||
int retval =
|
||||
my_asprintf (&result, "%La %d", -zerol, 33, 44, 55);
|
||||
my_asprintf (&result, "%La %d", minus_zerol, 33, 44, 55);
|
||||
ASSERT (result != NULL);
|
||||
if (have_minus_zero ())
|
||||
ASSERT (strcmp (result, "-0x0p+0 33") == 0);
|
||||
@@ -1332,7 +1332,7 @@ test_function (int (*my_asprintf) (char **, const char *, ...))
|
||||
{ /* Negative zero. */
|
||||
char *result;
|
||||
int retval =
|
||||
my_asprintf (&result, "%Lf %d", -zerol, 33, 44, 55);
|
||||
my_asprintf (&result, "%Lf %d", minus_zerol, 33, 44, 55);
|
||||
ASSERT (result != NULL);
|
||||
if (have_minus_zero ())
|
||||
ASSERT (strcmp (result, "-0.000000 33") == 0);
|
||||
@@ -1779,7 +1779,7 @@ test_function (int (*my_asprintf) (char **, const char *, ...))
|
||||
{ /* Negative zero. */
|
||||
char *result;
|
||||
int retval =
|
||||
my_asprintf (&result, "%LF %d", -zerol, 33, 44, 55);
|
||||
my_asprintf (&result, "%LF %d", minus_zerol, 33, 44, 55);
|
||||
ASSERT (result != NULL);
|
||||
if (have_minus_zero ())
|
||||
ASSERT (strcmp (result, "-0.000000 33") == 0);
|
||||
@@ -2353,7 +2353,7 @@ test_function (int (*my_asprintf) (char **, const char *, ...))
|
||||
{ /* Negative zero. */
|
||||
char *result;
|
||||
int retval =
|
||||
my_asprintf (&result, "%Le %d", -zerol, 33, 44, 55);
|
||||
my_asprintf (&result, "%Le %d", minus_zerol, 33, 44, 55);
|
||||
ASSERT (result != NULL);
|
||||
if (have_minus_zero ())
|
||||
ASSERT (strcmp (result, "-0.000000e+00 33") == 0
|
||||
@@ -3108,7 +3108,7 @@ test_function (int (*my_asprintf) (char **, const char *, ...))
|
||||
{ /* Negative zero. */
|
||||
char *result;
|
||||
int retval =
|
||||
my_asprintf (&result, "%Lg %d", -zerol, 33, 44, 55);
|
||||
my_asprintf (&result, "%Lg %d", minus_zerol, 33, 44, 55);
|
||||
ASSERT (result != NULL);
|
||||
if (have_minus_zero ())
|
||||
ASSERT (strcmp (result, "-0 33") == 0);
|
||||
|
Reference in New Issue
Block a user