* lib/math.in.h (NAN): Define through a function call also on MSVC.
* m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Divide by 'zero' instead of 0.0.
* m4/printf.m4 (gl_PRINTF_INFINITE, gl_PRINTF_DIRECTIVE_A,
gl_PRINTF_DIRECTIVE_F, gl_PRINTF_FLAG_ZERO): Likewise.
(gl_PRINTF_INFINITE_LONG_DOUBLE): Divide by 'zeroL' instead of 0.0L.
* tests/infinity.h: New file.
* tests/nan.h (NaNf, NaNd, NaNl): Define through a function call also
on MSVC.
* tests/test-ceilf1.c: Include infinity.h.
(main): Use Infinityf.
* tests/test-ceil1.c: Include infinity.h.
(main): Use Infinityd.
* tests/test-ceill.c: Include infinity.h.
(main): Use Infinityl.
* tests/test-dprintf-posix.c: Include infinity.h.
(test_function): Use Infinityd.
* tests/test-floorf1.c: Include infinity.h.
(main): Use Infinityf.
* tests/test-floor1.c: Include infinity.h.
(main): Use Infinityd.
* tests/test-floorl.c: Include infinity.h.
(main): Use Infinityl.
* tests/test-fprintf-posix.c: Include infinity.h.
(test_function): Use Infinityd.
* tests/test-frexp.c: Include infinity.h.
(main): Use Infinityd.
* tests/test-frexpl.c: Include infinity.h.
(main): Use Infinityl.
* tests/test-isfinite.c: Include infinity.h.
(test_isfinitef): Use Infinityf.
(test_isfinited): Use Infinityd.
(test_isfinitel): Use Infinityl.
* tests/test-isinf.c: Include infinity.h.
(test_isinff): Use Infinityf.
(test_isinfd): Use Infinityd.
(test_isinfl): Use Infinityl.
* tests/test-isnan.c: Include infinity.h.
(test_float): Use Infinityf.
(test_double): Use Infinityd.
(test_long_double): Use Infinityl.
* tests/test-isnanf.h: Include infinity.h.
(main): Use Infinityf.
* tests/test-isnand.h: Include infinity.h.
(main): Use Infinityd.
* tests/test-isnanl.h: Include infinity.h.
(main): Use Infinityl.
* tests/test-ldexpl.c: Include infinity.h.
(main): Use Infinityl.
* tests/test-printf-posix.h: Include infinity.h.
(test_function): Use Infinityd.
* tests/test-roundf1.c: Include infinity.h.
(main): Use Infinityf.
* tests/test-round1.c: Include infinity.h.
(main): Use Infinityd.
* tests/test-roundl.c: Include infinity.h.
(main): Use Infinityl.
* tests/test-signbit.c: Include infinity.h.
(test_signbitf): Use Infinityf.
(test_signbitd): Use Infinityd.
(test_signbitl): Use Infinityl.
* tests/test-snprintf-posix.h: Include infinity.h.
(test_function): Use Infinityd, Infinityl.
* tests/test-sprintf-posix.h: Include infinity.h.
(test_function): Use Infinityd, Infinityl.
* tests/test-truncf1.c: Include infinity.h.
(main): Use Infinityf.
* tests/test-trunc1.c: Include infinity.h.
(main): Use Infinityd.
* tests/test-truncl.c: Include infinity.h.
(main): Use Infinityl.
* tests/test-vasnprintf-posix.c: Include infinity.h.
(test_function): Use Infinityd, Infinityl.
* tests/test-vasprintf-posix.c: Include infinity.h.
(test_function): Use Infinityd, Infinityl.
* modules/ceilf-tests (Files): Add tests/infinity.h.
* modules/ceil-tests (Files): Likewise.
* modules/ceill-tests (Files): Likewise.
* modules/dprintf-posix-tests (Files): Likewise.
* modules/floorf-tests (Files): Likewise.
* modules/floor-tests (Files): Likewise.
* modules/floorl-tests (Files): Likewise.
* modules/fprintf-posix-tests (Files): Likewise.
* modules/frexp-tests (Files): Likewise.
* modules/frexp-nolibm-tests (Files): Likewise.
* modules/frexpl-tests (Files): Likewise.
* modules/frexpl-nolibm-tests (Files): Likewise.
* modules/isfinite-tests (Files): Likewise.
* modules/isinf-tests (Files): Likewise.
* modules/isnan-tests (Files): Likewise.
* modules/isnanf-tests (Files): Likewise.
* modules/isnanf-nolibm-tests (Files): Likewise.
* modules/isnand-tests (Files): Likewise.
* modules/isnand-nolibm-tests (Files): Likewise.
* modules/isnanl-tests (Files): Likewise.
* modules/isnanl-nolibm-tests (Files): Likewise.
* modules/ldexpl-tests (Files): Likewise.
* modules/printf-posix-tests (Files): Likewise.
* modules/roundf-tests (Files): Likewise.
* modules/round-tests (Files): Likewise.
* modules/roundl-tests (Files): Likewise.
* modules/signbit-tests (Files): Likewise.
* modules/snprintf-posix-tests (Files): Likewise.
* modules/sprintf-posix-tests (Files): Likewise.
* modules/truncf-tests (Files): Likewise.
* modules/trunc-tests (Files): Likewise.
* modules/truncl-tests (Files): Likewise.
* modules/vasnprintf-posix-tests (Files): Likewise.
* modules/vasprintf-posix-tests (Files): Likewise.
* modules/vdprintf-posix-tests (Files): Likewise.
* modules/vfprintf-posix-tests (Files): Likewise.
* modules/vprintf-posix-tests (Files): Likewise.
* modules/vsnprintf-posix-tests (Files): Likewise.
* modules/vsprintf-posix-tests (Files): Likewise.
* modules/xprintf-posix-tests (Files): Likewise.
+2011-09-11 Bruno Haible <bruno@clisp.org>
+
+ Support for MSVC compiler: Avoid division by a literal 0.
+ * lib/math.in.h (NAN): Define through a function call also on MSVC.
+ * m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Divide by 'zero' instead of 0.0.
+ * m4/printf.m4 (gl_PRINTF_INFINITE, gl_PRINTF_DIRECTIVE_A,
+ gl_PRINTF_DIRECTIVE_F, gl_PRINTF_FLAG_ZERO): Likewise.
+ (gl_PRINTF_INFINITE_LONG_DOUBLE): Divide by 'zeroL' instead of 0.0L.
+ * tests/infinity.h: New file.
+ * tests/nan.h (NaNf, NaNd, NaNl): Define through a function call also
+ on MSVC.
+ * tests/test-ceilf1.c: Include infinity.h.
+ (main): Use Infinityf.
+ * tests/test-ceil1.c: Include infinity.h.
+ (main): Use Infinityd.
+ * tests/test-ceill.c: Include infinity.h.
+ (main): Use Infinityl.
+ * tests/test-dprintf-posix.c: Include infinity.h.
+ (test_function): Use Infinityd.
+ * tests/test-floorf1.c: Include infinity.h.
+ (main): Use Infinityf.
+ * tests/test-floor1.c: Include infinity.h.
+ (main): Use Infinityd.
+ * tests/test-floorl.c: Include infinity.h.
+ (main): Use Infinityl.
+ * tests/test-fprintf-posix.c: Include infinity.h.
+ (test_function): Use Infinityd.
+ * tests/test-frexp.c: Include infinity.h.
+ (main): Use Infinityd.
+ * tests/test-frexpl.c: Include infinity.h.
+ (main): Use Infinityl.
+ * tests/test-isfinite.c: Include infinity.h.
+ (test_isfinitef): Use Infinityf.
+ (test_isfinited): Use Infinityd.
+ (test_isfinitel): Use Infinityl.
+ * tests/test-isinf.c: Include infinity.h.
+ (test_isinff): Use Infinityf.
+ (test_isinfd): Use Infinityd.
+ (test_isinfl): Use Infinityl.
+ * tests/test-isnan.c: Include infinity.h.
+ (test_float): Use Infinityf.
+ (test_double): Use Infinityd.
+ (test_long_double): Use Infinityl.
+ * tests/test-isnanf.h: Include infinity.h.
+ (main): Use Infinityf.
+ * tests/test-isnand.h: Include infinity.h.
+ (main): Use Infinityd.
+ * tests/test-isnanl.h: Include infinity.h.
+ (main): Use Infinityl.
+ * tests/test-ldexpl.c: Include infinity.h.
+ (main): Use Infinityl.
+ * tests/test-printf-posix.h: Include infinity.h.
+ (test_function): Use Infinityd.
+ * tests/test-roundf1.c: Include infinity.h.
+ (main): Use Infinityf.
+ * tests/test-round1.c: Include infinity.h.
+ (main): Use Infinityd.
+ * tests/test-roundl.c: Include infinity.h.
+ (main): Use Infinityl.
+ * tests/test-signbit.c: Include infinity.h.
+ (test_signbitf): Use Infinityf.
+ (test_signbitd): Use Infinityd.
+ (test_signbitl): Use Infinityl.
+ * tests/test-snprintf-posix.h: Include infinity.h.
+ (test_function): Use Infinityd, Infinityl.
+ * tests/test-sprintf-posix.h: Include infinity.h.
+ (test_function): Use Infinityd, Infinityl.
+ * tests/test-truncf1.c: Include infinity.h.
+ (main): Use Infinityf.
+ * tests/test-trunc1.c: Include infinity.h.
+ (main): Use Infinityd.
+ * tests/test-truncl.c: Include infinity.h.
+ (main): Use Infinityl.
+ * tests/test-vasnprintf-posix.c: Include infinity.h.
+ (test_function): Use Infinityd, Infinityl.
+ * tests/test-vasprintf-posix.c: Include infinity.h.
+ (test_function): Use Infinityd, Infinityl.
+ * modules/ceilf-tests (Files): Add tests/infinity.h.
+ * modules/ceil-tests (Files): Likewise.
+ * modules/ceill-tests (Files): Likewise.
+ * modules/dprintf-posix-tests (Files): Likewise.
+ * modules/floorf-tests (Files): Likewise.
+ * modules/floor-tests (Files): Likewise.
+ * modules/floorl-tests (Files): Likewise.
+ * modules/fprintf-posix-tests (Files): Likewise.
+ * modules/frexp-tests (Files): Likewise.
+ * modules/frexp-nolibm-tests (Files): Likewise.
+ * modules/frexpl-tests (Files): Likewise.
+ * modules/frexpl-nolibm-tests (Files): Likewise.
+ * modules/isfinite-tests (Files): Likewise.
+ * modules/isinf-tests (Files): Likewise.
+ * modules/isnan-tests (Files): Likewise.
+ * modules/isnanf-tests (Files): Likewise.
+ * modules/isnanf-nolibm-tests (Files): Likewise.
+ * modules/isnand-tests (Files): Likewise.
+ * modules/isnand-nolibm-tests (Files): Likewise.
+ * modules/isnanl-tests (Files): Likewise.
+ * modules/isnanl-nolibm-tests (Files): Likewise.
+ * modules/ldexpl-tests (Files): Likewise.
+ * modules/printf-posix-tests (Files): Likewise.
+ * modules/roundf-tests (Files): Likewise.
+ * modules/round-tests (Files): Likewise.
+ * modules/roundl-tests (Files): Likewise.
+ * modules/signbit-tests (Files): Likewise.
+ * modules/snprintf-posix-tests (Files): Likewise.
+ * modules/sprintf-posix-tests (Files): Likewise.
+ * modules/truncf-tests (Files): Likewise.
+ * modules/trunc-tests (Files): Likewise.
+ * modules/truncl-tests (Files): Likewise.
+ * modules/vasnprintf-posix-tests (Files): Likewise.
+ * modules/vasprintf-posix-tests (Files): Likewise.
+ * modules/vdprintf-posix-tests (Files): Likewise.
+ * modules/vfprintf-posix-tests (Files): Likewise.
+ * modules/vprintf-posix-tests (Files): Likewise.
+ * modules/vsnprintf-posix-tests (Files): Likewise.
+ * modules/vsprintf-posix-tests (Files): Likewise.
+ * modules/xprintf-posix-tests (Files): Likewise.
+
2011-09-11 Bruno Haible <bruno@clisp.org>
Ensure pid_t gets defined.
#if !defined NAN || @REPLACE_NAN@
# if !GNULIB_defined_NAN
# undef NAN
- /* The Compaq (ex-DEC) C 6.4 compiler chokes on the expression 0.0 / 0.0. */
-# ifdef __DECC
+ /* The Compaq (ex-DEC) C 6.4 compiler and the Microsoft MSVC 9 compiler
+ choke on the expression 0.0 / 0.0. */
+# if defined __DECC || defined _MSC_VER
static float
_NaN ()
{
-# frexp.m4 serial 11
+# frexp.m4 serial 12
dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
result |= 1;
}
/* Test on infinite numbers. */
- x = 1.0 / 0.0;
+ x = 1.0 / zero;
{
int exp;
double y = frexp (x, &exp);
-# printf.m4 serial 44
+# printf.m4 serial 45
dnl Copyright (C) 2003, 2007-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
int main ()
{
int result = 0;
- if (sprintf (buf, "%f", 1.0 / 0.0) < 0
+ if (sprintf (buf, "%f", 1.0 / zero) < 0
|| (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
result |= 1;
- if (sprintf (buf, "%f", -1.0 / 0.0) < 0
+ if (sprintf (buf, "%f", -1.0 / zero) < 0
|| (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
result |= 1;
if (sprintf (buf, "%f", zero / zero) < 0
|| !strisnan (buf, 0, strlen (buf)))
result |= 2;
- if (sprintf (buf, "%e", 1.0 / 0.0) < 0
+ if (sprintf (buf, "%e", 1.0 / zero) < 0
|| (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
result |= 4;
- if (sprintf (buf, "%e", -1.0 / 0.0) < 0
+ if (sprintf (buf, "%e", -1.0 / zero) < 0
|| (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
result |= 4;
if (sprintf (buf, "%e", zero / zero) < 0
|| !strisnan (buf, 0, strlen (buf)))
result |= 8;
- if (sprintf (buf, "%g", 1.0 / 0.0) < 0
+ if (sprintf (buf, "%g", 1.0 / zero) < 0
|| (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
result |= 16;
- if (sprintf (buf, "%g", -1.0 / 0.0) < 0
+ if (sprintf (buf, "%g", -1.0 / zero) < 0
|| (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
result |= 16;
if (sprintf (buf, "%g", zero / zero) < 0
{
int result = 0;
nocrash_init();
- if (sprintf (buf, "%Lf", 1.0L / 0.0L) < 0
+ if (sprintf (buf, "%Lf", 1.0L / zeroL) < 0
|| (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
result |= 1;
- if (sprintf (buf, "%Lf", -1.0L / 0.0L) < 0
+ if (sprintf (buf, "%Lf", -1.0L / zeroL) < 0
|| (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
result |= 1;
if (sprintf (buf, "%Lf", zeroL / zeroL) < 0
|| !strisnan (buf, 0, strlen (buf)))
result |= 1;
- if (sprintf (buf, "%Le", 1.0L / 0.0L) < 0
+ if (sprintf (buf, "%Le", 1.0L / zeroL) < 0
|| (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
result |= 1;
- if (sprintf (buf, "%Le", -1.0L / 0.0L) < 0
+ if (sprintf (buf, "%Le", -1.0L / zeroL) < 0
|| (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
result |= 1;
if (sprintf (buf, "%Le", zeroL / zeroL) < 0
|| !strisnan (buf, 0, strlen (buf)))
result |= 1;
- if (sprintf (buf, "%Lg", 1.0L / 0.0L) < 0
+ if (sprintf (buf, "%Lg", 1.0L / zeroL) < 0
|| (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
result |= 1;
- if (sprintf (buf, "%Lg", -1.0L / 0.0L) < 0
+ if (sprintf (buf, "%Lg", -1.0L / zeroL) < 0
|| (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
result |= 1;
if (sprintf (buf, "%Lg", zeroL / zeroL) < 0
#include <stdio.h>
#include <string.h>
static char buf[100];
+static double zero = 0.0;
int main ()
{
int result = 0;
result |= 4;
/* This catches a FreeBSD 6.1 bug. See
<http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html> */
- if (sprintf (buf, "%010a %d", 1.0 / 0.0, 33, 44, 55) < 0
+ if (sprintf (buf, "%010a %d", 1.0 / zero, 33, 44, 55) < 0
|| buf[0] == '0')
result |= 8;
/* This catches a MacOS X 10.3.9 (Darwin 7.9) bug. */
#include <stdio.h>
#include <string.h>
static char buf[100];
+static double zero = 0.0;
int main ()
{
int result = 0;
if (sprintf (buf, "%F %d", 1234567.0, 33, 44, 55) < 0
|| strcmp (buf, "1234567.000000 33") != 0)
result |= 1;
- if (sprintf (buf, "%F", 1.0 / 0.0) < 0
+ if (sprintf (buf, "%F", 1.0 / zero) < 0
|| (strcmp (buf, "INF") != 0 && strcmp (buf, "INFINITY") != 0))
result |= 2;
/* This catches a Cygwin 1.5.x bug. */
#include <stdio.h>
#include <string.h>
static char buf[100];
+static double zero = 0.0;
int main ()
{
- if (sprintf (buf, "%010f", 1.0 / 0.0, 33, 44, 55) < 0
+ if (sprintf (buf, "%010f", 1.0 / zero, 33, 44, 55) < 0
|| (strcmp (buf, " inf") != 0
&& strcmp (buf, " infinity") != 0))
return 1;
tests/test-ceil1.c
tests/test-ceil2.c
tests/minus-zero.h
+tests/infinity.h
tests/nan.h
tests/signature.h
tests/macros.h
tests/test-ceilf1.c
tests/test-ceilf2.c
tests/minus-zero.h
+tests/infinity.h
tests/nan.h
tests/signature.h
tests/macros.h
Files:
tests/test-ceill.c
tests/minus-zero.h
+tests/infinity.h
tests/nan.h
tests/signature.h
tests/macros.h
tests/test-printf-posix.output
tests/test-dprintf-posix2.sh
tests/test-dprintf-posix2.c
+tests/infinity.h
tests/signature.h
tests/macros.h
tests/test-floor1.c
tests/test-floor2.c
tests/minus-zero.h
+tests/infinity.h
tests/nan.h
tests/signature.h
tests/macros.h
tests/test-floorf1.c
tests/test-floorf2.c
tests/minus-zero.h
+tests/infinity.h
tests/nan.h
tests/signature.h
tests/macros.h
Files:
tests/test-floorl.c
tests/minus-zero.h
+tests/infinity.h
tests/nan.h
tests/signature.h
tests/macros.h
tests/test-fprintf-posix2.c
tests/test-fprintf-posix3.sh
tests/test-fprintf-posix3.c
+tests/infinity.h
tests/signature.h
tests/macros.h
Files:
tests/test-frexp.c
tests/minus-zero.h
+tests/infinity.h
tests/nan.h
tests/signature.h
tests/macros.h
Files:
tests/test-frexp.c
tests/minus-zero.h
+tests/infinity.h
tests/nan.h
tests/signature.h
tests/macros.h
Files:
tests/test-frexpl.c
tests/minus-zero.h
+tests/infinity.h
tests/nan.h
tests/signature.h
tests/macros.h
Files:
tests/test-frexpl.c
tests/minus-zero.h
+tests/infinity.h
tests/nan.h
tests/signature.h
tests/macros.h
Files:
tests/test-isfinite.c
+tests/infinity.h
tests/macros.h
Depends-on:
m4/exponentd.m4
m4/exponentl.m4
tests/test-isinf.c
+tests/infinity.h
tests/macros.h
Depends-on:
Files:
tests/test-isnan.c
tests/minus-zero.h
+tests/infinity.h
tests/nan.h
tests/macros.h
tests/test-isnand-nolibm.c
tests/test-isnand.h
tests/minus-zero.h
+tests/infinity.h
tests/nan.h
tests/macros.h
tests/test-isnand.c
tests/test-isnand.h
tests/minus-zero.h
+tests/infinity.h
tests/nan.h
tests/macros.h
tests/test-isnanf-nolibm.c
tests/test-isnanf.h
tests/minus-zero.h
+tests/infinity.h
tests/nan.h
tests/macros.h
tests/test-isnanf.c
tests/test-isnanf.h
tests/minus-zero.h
+tests/infinity.h
tests/nan.h
tests/macros.h
tests/test-isnanl-nolibm.c
tests/test-isnanl.h
tests/minus-zero.h
+tests/infinity.h
tests/nan.h
tests/macros.h
tests/test-isnanl.c
tests/test-isnanl.h
tests/minus-zero.h
+tests/infinity.h
tests/nan.h
tests/macros.h
Files:
tests/test-ldexpl.c
tests/minus-zero.h
+tests/infinity.h
tests/nan.h
tests/signature.h
tests/macros.h
tests/test-printf-posix.output
tests/test-printf-posix2.sh
tests/test-printf-posix2.c
+tests/infinity.h
tests/signature.h
tests/macros.h
tests/test-round1.c
tests/test-round2.c
tests/minus-zero.h
+tests/infinity.h
tests/nan.h
tests/signature.h
tests/macros.h
tests/test-round2.c
tests/test-roundf2.c
tests/minus-zero.h
+tests/infinity.h
tests/nan.h
tests/signature.h
tests/macros.h
Files:
tests/test-roundl.c
tests/minus-zero.h
+tests/infinity.h
tests/nan.h
tests/signature.h
tests/macros.h
Files:
tests/test-signbit.c
tests/minus-zero.h
+tests/infinity.h
tests/macros.h
m4/exponentf.m4
m4/exponentd.m4
tests/test-snprintf-posix.h
tests/test-snprintf.c
tests/minus-zero.h
+tests/infinity.h
tests/nan.h
tests/signature.h
tests/macros.h
tests/test-sprintf-posix.c
tests/test-sprintf-posix.h
tests/minus-zero.h
+tests/infinity.h
tests/nan.h
tests/signature.h
tests/macros.h
tests/test-trunc1.c
tests/test-trunc2.c
tests/minus-zero.h
+tests/infinity.h
tests/nan.h
tests/signature.h
tests/macros.h
tests/test-truncf1.c
tests/test-truncf2.c
tests/minus-zero.h
+tests/infinity.h
tests/nan.h
tests/signature.h
tests/macros.h
Files:
tests/test-truncl.c
tests/minus-zero.h
+tests/infinity.h
tests/nan.h
tests/signature.h
tests/macros.h
tests/test-vasnprintf-posix2.c
tests/test-vasnprintf-posix3.c
tests/minus-zero.h
+tests/infinity.h
tests/nan.h
tests/macros.h
m4/locale-fr.m4
Files:
tests/test-vasprintf-posix.c
tests/minus-zero.h
+tests/infinity.h
tests/nan.h
tests/macros.h
tests/test-vdprintf-posix.c
tests/test-fprintf-posix.h
tests/test-printf-posix.output
+tests/infinity.h
tests/signature.h
tests/macros.h
tests/test-vfprintf-posix.c
tests/test-fprintf-posix.h
tests/test-printf-posix.output
+tests/infinity.h
tests/signature.h
tests/macros.h
tests/test-vprintf-posix.c
tests/test-printf-posix.h
tests/test-printf-posix.output
+tests/infinity.h
tests/signature.h
tests/macros.h
tests/test-snprintf-posix.h
tests/test-vsnprintf.c
tests/minus-zero.h
+tests/infinity.h
tests/nan.h
tests/signature.h
tests/macros.h
tests/test-vsprintf-posix.c
tests/test-sprintf-posix.h
tests/minus-zero.h
+tests/infinity.h
tests/nan.h
tests/signature.h
tests/macros.h
tests/test-fprintf-posix.h
tests/test-printf-posix.h
tests/test-printf-posix.output
+tests/infinity.h
tests/macros.h
Depends-on:
--- /dev/null
+/* Macros for infinity.
+ Copyright (C) 2011 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+
+/* Infinityf () returns a 'float' +Infinity. */
+
+/* The Microsoft MSVC 9 compiler chokes on the expression 1.0f / 0.0f. */
+#if defined _MSC_VER
+static float
+Infinityf ()
+{
+ static float zero = 0.0f;
+ return 1.0f / zero;
+}
+#else
+# define Infinityf() (1.0f / 0.0f)
+#endif
+
+
+/* Infinityd () returns a 'double' +Infinity. */
+
+/* The Microsoft MSVC 9 compiler chokes on the expression 1.0 / 0.0. */
+#if defined _MSC_VER
+static double
+Infinityd ()
+{
+ static double zero = 0.0;
+ return 1.0 / zero;
+}
+#else
+# define Infinityd() (1.0 / 0.0)
+#endif
+
+
+/* Infinityl () returns a 'long double' +Infinity. */
+
+/* The Microsoft MSVC 9 compiler chokes on the expression 1.0L / 0.0L. */
+#if defined _MSC_VER
+static double
+Infinityl ()
+{
+ static long double zero = 0.0L;
+ return 1.0L / zero;
+}
+#else
+# define Infinityl() (1.0L / 0.0L)
+#endif
/* NaNf () returns a 'float' not-a-number. */
-/* The Compaq (ex-DEC) C 6.4 compiler chokes on the expression 0.0 / 0.0. */
-#ifdef __DECC
+/* The Compaq (ex-DEC) C 6.4 compiler and the Microsoft MSVC 9 compiler choke
+ on the expression 0.0 / 0.0. */
+#if defined __DECC || defined _MSC_VER
static float
NaNf ()
{
/* NaNd () returns a 'double' not-a-number. */
-/* The Compaq (ex-DEC) C 6.4 compiler chokes on the expression 0.0 / 0.0. */
-#ifdef __DECC
+/* The Compaq (ex-DEC) C 6.4 compiler and the Microsoft MSVC 9 compiler choke
+ on the expression 0.0 / 0.0. */
+#if defined __DECC || defined _MSC_VER
static double
NaNd ()
{
/* NaNl () returns a 'long double' not-a-number. */
/* On Irix 6.5, gcc 3.4.3 can't compute compile-time NaN, and needs the
- runtime type conversion. */
+ runtime type conversion.
+ The Microsoft MSVC 9 compiler chokes on the expression 0.0L / 0.0L. */
#ifdef __sgi
static long double NaNl ()
{
double zero = 0.0;
return zero / zero;
}
+#elif defined _MSC_VER
+static long double
+NaNl ()
+{
+ static long double zero = 0.0L;
+ return zero / zero;
+}
#else
# define NaNl() (0.0L / 0.0L)
#endif
#include "isnand-nolibm.h"
#include "minus-zero.h"
+#include "infinity.h"
#include "nan.h"
#include "macros.h"
ASSERT (ceil (-65536.0) == -65536.0);
ASSERT (ceil (-2.341e31) == -2.341e31);
/* Infinite numbers. */
- ASSERT (ceil (1.0 / 0.0) == 1.0 / 0.0);
- ASSERT (ceil (-1.0 / 0.0) == -1.0 / 0.0);
+ ASSERT (ceil (Infinityd ()) == Infinityd ());
+ ASSERT (ceil (- Infinityd ()) == - Infinityd ());
/* NaNs. */
ASSERT (isnand (ceil (NaNd ())));
#include "isnanf-nolibm.h"
#include "minus-zero.h"
+#include "infinity.h"
#include "nan.h"
#include "macros.h"
ASSERT (my_ceilf (-65536.0f) == -65536.0f);
ASSERT (my_ceilf (-2.341e31f) == -2.341e31f);
/* Infinite numbers. */
- ASSERT (my_ceilf (1.0f / 0.0f) == 1.0f / 0.0f);
- ASSERT (my_ceilf (-1.0f / 0.0f) == -1.0f / 0.0f);
+ ASSERT (my_ceilf (Infinityf ()) == Infinityf ());
+ ASSERT (my_ceilf (- Infinityf ()) == - Infinityf ());
/* NaNs. */
ASSERT (isnanf (my_ceilf (NaNf ())));
#include "fpucw.h"
#include "isnanl-nolibm.h"
#include "minus-zero.h"
+#include "infinity.h"
#include "nan.h"
#include "macros.h"
ASSERT (ceill (-65536.0L) == -65536.0L);
ASSERT (ceill (-2.341e31L) == -2.341e31L);
/* Infinite numbers. */
- ASSERT (ceill (1.0L / 0.0L) == 1.0L / 0.0L);
- ASSERT (ceill (-1.0L / 0.0L) == -1.0L / 0.0L);
+ ASSERT (ceill (Infinityl ()) == Infinityl ());
+ ASSERT (ceill (- Infinityl ()) == - Infinityl ());
/* NaNs. */
ASSERT (isnanl (ceill (NaNl ())));
#include <stdint.h>
#include <string.h>
+#include "infinity.h"
#include "macros.h"
static void
my_dprintf (fileno (stdout), "%a %d\n", 0.0, 33, 44, 55);
/* Positive infinity. */
- my_dprintf (fileno (stdout), "%a %d\n", 1.0 / 0.0, 33, 44, 55);
+ my_dprintf (fileno (stdout), "%a %d\n", Infinityd (), 33, 44, 55);
/* Negative infinity. */
- my_dprintf (fileno (stdout), "%a %d\n", -1.0 / 0.0, 33, 44, 55);
+ my_dprintf (fileno (stdout), "%a %d\n", - Infinityd (), 33, 44, 55);
/* FLAG_ZERO with infinite number. */
- my_dprintf (fileno (stdout), "%010a %d\n", 1.0 / 0.0, 33, 44, 55);
+ my_dprintf (fileno (stdout), "%010a %d\n", Infinityd (), 33, 44, 55);
/* Test the support of the %f format directive. */
#include "isnand-nolibm.h"
#include "minus-zero.h"
+#include "infinity.h"
#include "nan.h"
#include "macros.h"
ASSERT (floor (-65536.0) == -65536.0);
ASSERT (floor (-2.341e31) == -2.341e31);
/* Infinite numbers. */
- ASSERT (floor (1.0 / 0.0) == 1.0 / 0.0);
- ASSERT (floor (-1.0 / 0.0) == -1.0 / 0.0);
+ ASSERT (floor (Infinityd ()) == Infinityd ());
+ ASSERT (floor (- Infinityd ()) == - Infinityd ());
/* NaNs. */
ASSERT (isnand (floor (NaNd ())));
#include "isnanf-nolibm.h"
#include "minus-zero.h"
+#include "infinity.h"
#include "nan.h"
#include "macros.h"
ASSERT (my_floorf (-65536.0f) == -65536.0f);
ASSERT (my_floorf (-2.341e31f) == -2.341e31f);
/* Infinite numbers. */
- ASSERT (my_floorf (1.0f / 0.0f) == 1.0f / 0.0f);
- ASSERT (my_floorf (-1.0f / 0.0f) == -1.0f / 0.0f);
+ ASSERT (my_floorf (Infinityf ()) == Infinityf ());
+ ASSERT (my_floorf (- Infinityf ()) == - Infinityf ());
/* NaNs. */
ASSERT (isnanf (my_floorf (NaNf ())));
#include "fpucw.h"
#include "isnanl-nolibm.h"
#include "minus-zero.h"
+#include "infinity.h"
#include "nan.h"
#include "macros.h"
ASSERT (floorl (-65536.0L) == -65536.0L);
ASSERT (floorl (-2.341e31L) == -2.341e31L);
/* Infinite numbers. */
- ASSERT (floorl (1.0L / 0.0L) == 1.0L / 0.0L);
- ASSERT (floorl (-1.0L / 0.0L) == -1.0L / 0.0L);
+ ASSERT (floorl (Infinityl ()) == Infinityl ());
+ ASSERT (floorl (- Infinityl ()) == - Infinityl ());
/* NaNs. */
ASSERT (isnanl (floorl (NaNl ())));
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+#include "infinity.h"
+
static void
test_function (int (*my_fprintf) (FILE *, const char *, ...))
{
my_fprintf (stdout, "%a %d\n", 0.0, 33, 44, 55);
/* Positive infinity. */
- my_fprintf (stdout, "%a %d\n", 1.0 / 0.0, 33, 44, 55);
+ my_fprintf (stdout, "%a %d\n", Infinityd (), 33, 44, 55);
/* Negative infinity. */
- my_fprintf (stdout, "%a %d\n", -1.0 / 0.0, 33, 44, 55);
+ my_fprintf (stdout, "%a %d\n", - Infinityd (), 33, 44, 55);
/* FLAG_ZERO with infinite number. */
- my_fprintf (stdout, "%010a %d\n", 1.0 / 0.0, 33, 44, 55);
+ my_fprintf (stdout, "%010a %d\n", Infinityd (), 33, 44, 55);
/* Test the support of the %f format directive. */
#include "isnand-nolibm.h"
#include "minus-zero.h"
+#include "infinity.h"
#include "nan.h"
#include "macros.h"
{ /* Positive infinity. */
int exp = -9999;
double mantissa;
- x = 1.0 / 0.0;
+ x = Infinityd ();
mantissa = frexp (x, &exp);
ASSERT (mantissa == x);
}
{ /* Negative infinity. */
int exp = -9999;
double mantissa;
- x = -1.0 / 0.0;
+ x = - Infinityd ();
mantissa = frexp (x, &exp);
ASSERT (mantissa == x);
}
#include "fpucw.h"
#include "isnanl-nolibm.h"
#include "minus-zero.h"
+#include "infinity.h"
#include "nan.h"
#include "macros.h"
{ /* Positive infinity. */
int exp = -9999;
long double mantissa;
- x = 1.0L / 0.0L;
+ x = Infinityl ();
mantissa = frexpl (x, &exp);
ASSERT (mantissa == x);
}
{ /* Negative infinity. */
int exp = -9999;
long double mantissa;
- x = -1.0L / 0.0L;
+ x = - Infinityl ();
mantissa = frexpl (x, &exp);
ASSERT (mantissa == x);
}
#include <float.h>
#include <limits.h>
+#include "infinity.h"
#include "macros.h"
float zerof = 0.0f;
ASSERT (isfinite (-2.718e30f));
ASSERT (isfinite (-2.718e-30f));
/* Infinite values. */
- ASSERT (!isfinite (1.0f / 0.0f));
- ASSERT (!isfinite (-1.0f / 0.0f));
+ ASSERT (!isfinite (Infinityf ()));
+ ASSERT (!isfinite (- Infinityf ()));
/* Quiet NaN. */
ASSERT (!isfinite (zerof / zerof));
#if defined FLT_EXPBIT0_WORD && defined FLT_EXPBIT0_BIT
ASSERT (isfinite (-2.718e30));
ASSERT (isfinite (-2.718e-30));
/* Infinite values. */
- ASSERT (!isfinite (1.0 / 0.0));
- ASSERT (!isfinite (-1.0 / 0.0));
+ ASSERT (!isfinite (Infinityd ()));
+ ASSERT (!isfinite (- Infinityd ()));
/* Quiet NaN. */
ASSERT (!isfinite (zerod / zerod));
#if defined DBL_EXPBIT0_WORD && defined DBL_EXPBIT0_BIT
ASSERT (isfinite (-2.718e30L));
ASSERT (isfinite (-2.718e-30L));
/* Infinite values. */
- ASSERT (!isfinite (1.0L / 0.0L));
- ASSERT (!isfinite (-1.0L / 0.0L));
+ ASSERT (!isfinite (Infinityl ()));
+ ASSERT (!isfinite (- Infinityl ()));
/* Quiet NaN. */
ASSERT (!isfinite (zerol / zerol));
#include <float.h>
#include <limits.h>
+#include "infinity.h"
#include "macros.h"
float zerof = 0.0f;
ASSERT (!isinf (FLT_MAX));
ASSERT (!isinf (-FLT_MAX));
/* Infinite values. */
- ASSERT (isinf (1.0f / 0.0f));
- ASSERT (isinf (-1.0f / 0.0f));
+ ASSERT (isinf (Infinityf ()));
+ ASSERT (isinf (- Infinityf ()));
/* Quiet NaN. */
ASSERT (!isinf (zerof / zerof));
#if defined FLT_EXPBIT0_WORD && defined FLT_EXPBIT0_BIT
ASSERT (!isinf (DBL_MAX));
ASSERT (!isinf (-DBL_MAX));
/* Infinite values. */
- ASSERT (isinf (1.0 / 0.0));
- ASSERT (isinf (-1.0 / 0.0));
+ ASSERT (isinf (Infinityd ()));
+ ASSERT (isinf (- Infinityd ()));
/* Quiet NaN. */
ASSERT (!isinf (zerod / zerod));
#if defined DBL_EXPBIT0_WORD && defined DBL_EXPBIT0_BIT
ASSERT (!isinf (LDBL_MAX));
ASSERT (!isinf (-LDBL_MAX));
/* Infinite values. */
- ASSERT (isinf (1.0L / 0.0L));
- ASSERT (isinf (-1.0L / 0.0L));
+ ASSERT (isinf (Infinityl ()));
+ ASSERT (isinf (- Infinityl ()));
/* Quiet NaN. */
ASSERT (!isinf (zerol / zerol));
#include <limits.h>
#include "minus-zero.h"
+#include "infinity.h"
#include "nan.h"
#include "macros.h"
ASSERT (!isnan (0.0f));
ASSERT (!isnan (minus_zerof));
/* Infinite values. */
- ASSERT (!isnan (1.0f / 0.0f));
- ASSERT (!isnan (-1.0f / 0.0f));
+ ASSERT (!isnan (Infinityf ()));
+ ASSERT (!isnan (- Infinityf ()));
/* Quiet NaN. */
ASSERT (isnan (NaNf ()));
#if defined FLT_EXPBIT0_WORD && defined FLT_EXPBIT0_BIT
ASSERT (!isnan (0.0));
ASSERT (!isnan (minus_zerod));
/* Infinite values. */
- ASSERT (!isnan (1.0 / 0.0));
- ASSERT (!isnan (-1.0 / 0.0));
+ ASSERT (!isnan (Infinityd ()));
+ ASSERT (!isnan (- Infinityd ()));
/* Quiet NaN. */
ASSERT (isnan (NaNd ()));
#if defined DBL_EXPBIT0_WORD && defined DBL_EXPBIT0_BIT
ASSERT (!isnan (0.0L));
ASSERT (!isnan (minus_zerol));
/* Infinite values. */
- ASSERT (!isnan (1.0L / 0.0L));
- ASSERT (!isnan (-1.0L / 0.0L));
+ ASSERT (!isnan (Infinityl ()));
+ ASSERT (!isnan (- Infinityl ()));
/* Quiet NaN. */
ASSERT (isnan (NaNl ()));
#include <limits.h>
#include "minus-zero.h"
+#include "infinity.h"
#include "nan.h"
#include "macros.h"
ASSERT (!isnand (0.0));
ASSERT (!isnand (minus_zerod));
/* Infinite values. */
- ASSERT (!isnand (1.0 / 0.0));
- ASSERT (!isnand (-1.0 / 0.0));
+ ASSERT (!isnand (Infinityd ()));
+ ASSERT (!isnand (- Infinityd ()));
/* Quiet NaN. */
ASSERT (isnand (NaNd ()));
#if defined DBL_EXPBIT0_WORD && defined DBL_EXPBIT0_BIT
#include <limits.h>
#include "minus-zero.h"
+#include "infinity.h"
#include "nan.h"
#include "macros.h"
ASSERT (!isnanf (0.0f));
ASSERT (!isnanf (minus_zerof));
/* Infinite values. */
- ASSERT (!isnanf (1.0f / 0.0f));
- ASSERT (!isnanf (-1.0f / 0.0f));
+ ASSERT (!isnanf (Infinityf ()));
+ ASSERT (!isnanf (- Infinityf ()));
/* Quiet NaN. */
ASSERT (isnanf (NaNf ()));
#if defined FLT_EXPBIT0_WORD && defined FLT_EXPBIT0_BIT
#include <limits.h>
#include "minus-zero.h"
+#include "infinity.h"
#include "nan.h"
#include "macros.h"
ASSERT (!isnanl (0.0L));
ASSERT (!isnanl (minus_zerol));
/* Infinite values. */
- ASSERT (!isnanl (1.0L / 0.0L));
- ASSERT (!isnanl (-1.0L / 0.0L));
+ ASSERT (!isnanl (Infinityl ()));
+ ASSERT (!isnanl (- Infinityl ()));
/* Quiet NaN. */
ASSERT (isnanl (NaNl ()));
#include "fpucw.h"
#include "isnanl-nolibm.h"
#include "minus-zero.h"
+#include "infinity.h"
#include "nan.h"
#include "macros.h"
}
{ /* Positive infinity. */
- x = 1.0L / 0.0L;
+ x = Infinityl ();
y = ldexpl (x, 0); ASSERT (y == x);
y = ldexpl (x, 5); ASSERT (y == x);
y = ldexpl (x, -5); ASSERT (y == x);
}
{ /* Negative infinity. */
- x = -1.0L / 0.0L;
+ x = - Infinityl ();
y = ldexpl (x, 0); ASSERT (y == x);
y = ldexpl (x, 5); ASSERT (y == x);
y = ldexpl (x, -5); ASSERT (y == x);
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+#include "infinity.h"
+
static void
test_function (int (*my_printf) (const char *, ...))
{
my_printf ("%a %d\n", 0.0, 33, 44, 55);
/* Positive infinity. */
- my_printf ("%a %d\n", 1.0 / 0.0, 33, 44, 55);
+ my_printf ("%a %d\n", Infinityd (), 33, 44, 55);
/* Negative infinity. */
- my_printf ("%a %d\n", -1.0 / 0.0, 33, 44, 55);
+ my_printf ("%a %d\n", - Infinityd (), 33, 44, 55);
/* FLAG_ZERO with infinite number. */
/* "0000000inf 33" is not a valid result; see
<http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html> */
- my_printf ("%010a %d\n", 1.0 / 0.0, 33, 44, 55);
+ my_printf ("%010a %d\n", Infinityd (), 33, 44, 55);
/* Test the support of the %f format directive. */
#include "isnand-nolibm.h"
#include "minus-zero.h"
+#include "infinity.h"
#include "nan.h"
#include "macros.h"
ASSERT (round (-65536.001) == -65536.0);
ASSERT (round (-2.341e31) == -2.341e31);
/* Infinite numbers. */
- ASSERT (round (1.0 / 0.0) == 1.0 / 0.0);
- ASSERT (round (-1.0 / 0.0) == -1.0 / 0.0);
+ ASSERT (round (Infinityd ()) == Infinityd ());
+ ASSERT (round (- Infinityd ()) == - Infinityd ());
/* NaNs. */
ASSERT (isnand (round (NaNd ())));
#include "isnanf-nolibm.h"
#include "minus-zero.h"
+#include "infinity.h"
#include "nan.h"
#include "macros.h"
ASSERT (roundf (-65536.01f) == -65536.0f);
ASSERT (roundf (-2.341e31f) == -2.341e31f);
/* Infinite numbers. */
- ASSERT (roundf (1.0 / 0.0f) == 1.0 / 0.0f);
- ASSERT (roundf (-1.0 / 0.0f) == -1.0 / 0.0f);
+ ASSERT (roundf (Infinityf ()) == Infinityf ());
+ ASSERT (roundf (- Infinityf ()) == - Infinityf ());
/* NaNs. */
ASSERT (isnanf (roundf (NaNf ())));
#include "fpucw.h"
#include "isnanl-nolibm.h"
#include "minus-zero.h"
+#include "infinity.h"
#include "nan.h"
#include "macros.h"
ASSERT (roundl (-65536.001L) == -65536.0L);
ASSERT (roundl (-2.341e31L) == -2.341e31L);
/* Infinite numbers. */
- ASSERT (roundl (1.0 / 0.0L) == 1.0 / 0.0L);
- ASSERT (roundl (-1.0 / 0.0L) == -1.0 / 0.0L);
+ ASSERT (roundl (Infinityl ()) == Infinityl ());
+ ASSERT (roundl (- Infinityl ()) == - Infinityl ());
/* NaNs. */
ASSERT (isnanl (roundl (NaNl ())));
#include <limits.h>
#include "minus-zero.h"
+#include "infinity.h"
#include "macros.h"
float zerof = 0.0f;
else
ASSERT (!signbit (minus_zerof));
/* Infinite values. */
- ASSERT (!signbit (1.0f / 0.0f));
- ASSERT (signbit (-1.0f / 0.0f));
+ ASSERT (!signbit (Infinityf ()));
+ ASSERT (signbit (- Infinityf ()));
/* Quiet NaN. */
(void) signbit (zerof / zerof);
#if defined FLT_EXPBIT0_WORD && defined FLT_EXPBIT0_BIT
else
ASSERT (!signbit (minus_zerod));
/* Infinite values. */
- ASSERT (!signbit (1.0 / 0.0));
- ASSERT (signbit (-1.0 / 0.0));
+ ASSERT (!signbit (Infinityd ()));
+ ASSERT (signbit (- Infinityd ()));
/* Quiet NaN. */
(void) signbit (zerod / zerod);
#if defined DBL_EXPBIT0_WORD && defined DBL_EXPBIT0_BIT
else
ASSERT (!signbit (minus_zerol));
/* Infinite values. */
- ASSERT (!signbit (1.0L / 0.0L));
- ASSERT (signbit (-1.0L / 0.0L));
+ ASSERT (!signbit (Infinityl ()));
+ ASSERT (signbit (- Infinityl ()));
/* Quiet NaN. */
(void) signbit (zerol / zerol);
#if defined LDBL_EXPBIT0_WORD && defined LDBL_EXPBIT0_BIT
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
#include "minus-zero.h"
+#include "infinity.h"
#include "nan.h"
/* The SGI MIPS floating-point format does not distinguish 0.0 and -0.0. */
{ /* Positive infinity. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%a %d", 1.0 / 0.0, 33, 44, 55);
+ my_snprintf (result, sizeof (result), "%a %d", Infinityd (), 33, 44, 55);
ASSERT (strcmp (result, "inf 33") == 0);
ASSERT (retval == strlen (result));
}
{ /* Negative infinity. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%a %d", -1.0 / 0.0, 33, 44, 55);
+ my_snprintf (result, sizeof (result), "%a %d", - Infinityd (), 33, 44, 55);
ASSERT (strcmp (result, "-inf 33") == 0);
ASSERT (retval == strlen (result));
}
{ /* FLAG_ZERO with infinite number. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%010a %d", 1.0 / 0.0, 33, 44, 55);
+ my_snprintf (result, sizeof (result), "%010a %d", Infinityd (), 33, 44, 55);
/* "0000000inf 33" is not a valid result; see
<http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html> */
ASSERT (strcmp (result, " inf 33") == 0);
{ /* Positive infinity. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%La %d", 1.0L / 0.0L, 33, 44, 55);
+ my_snprintf (result, sizeof (result), "%La %d", Infinityl (), 33, 44, 55);
ASSERT (strcmp (result, "inf 33") == 0);
ASSERT (retval == strlen (result));
}
{ /* Negative infinity. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%La %d", -1.0L / 0.0L, 33, 44, 55);
+ my_snprintf (result, sizeof (result), "%La %d", - Infinityl (), 33, 44, 55);
ASSERT (strcmp (result, "-inf 33") == 0);
ASSERT (retval == strlen (result));
}
{ /* FLAG_ZERO with infinite number. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%010La %d", 1.0L / 0.0L, 33, 44, 55);
+ my_snprintf (result, sizeof (result), "%010La %d", Infinityl (), 33, 44, 55);
/* "0000000inf 33" is not a valid result; see
<http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html> */
ASSERT (strcmp (result, " inf 33") == 0);
{ /* Positive infinity. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%f %d", 1.0 / 0.0, 33, 44, 55);
+ my_snprintf (result, sizeof (result), "%f %d", Infinityd (), 33, 44, 55);
ASSERT (strcmp (result, "inf 33") == 0
|| strcmp (result, "infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* Negative infinity. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%f %d", -1.0 / 0.0, 33, 44, 55);
+ my_snprintf (result, sizeof (result), "%f %d", - Infinityd (), 33, 44, 55);
ASSERT (strcmp (result, "-inf 33") == 0
|| strcmp (result, "-infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* FLAG_ZERO with infinite number. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%015f %d", -1.0 / 0.0, 33, 44, 55);
+ my_snprintf (result, sizeof (result), "%015f %d", - Infinityd (), 33, 44, 55);
ASSERT (strcmp (result, " -inf 33") == 0
|| strcmp (result, " -infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* Positive infinity. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%Lf %d", 1.0L / 0.0L, 33, 44, 55);
+ my_snprintf (result, sizeof (result), "%Lf %d", Infinityl (), 33, 44, 55);
ASSERT (strcmp (result, "inf 33") == 0
|| strcmp (result, "infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* Negative infinity. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%Lf %d", -1.0L / 0.0L, 33, 44, 55);
+ my_snprintf (result, sizeof (result), "%Lf %d", - Infinityl (), 33, 44, 55);
ASSERT (strcmp (result, "-inf 33") == 0
|| strcmp (result, "-infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* FLAG_ZERO with infinite number. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%015Lf %d", -1.0L / 0.0L, 33, 44, 55);
+ my_snprintf (result, sizeof (result), "%015Lf %d", - Infinityl (), 33, 44, 55);
ASSERT (strcmp (result, " -inf 33") == 0
|| strcmp (result, " -infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* Positive infinity. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%F %d", 1.0 / 0.0, 33, 44, 55);
+ my_snprintf (result, sizeof (result), "%F %d", Infinityd (), 33, 44, 55);
ASSERT (strcmp (result, "INF 33") == 0
|| strcmp (result, "INFINITY 33") == 0);
ASSERT (retval == strlen (result));
{ /* Negative infinity. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%F %d", -1.0 / 0.0, 33, 44, 55);
+ my_snprintf (result, sizeof (result), "%F %d", - Infinityd (), 33, 44, 55);
ASSERT (strcmp (result, "-INF 33") == 0
|| strcmp (result, "-INFINITY 33") == 0);
ASSERT (retval == strlen (result));
{ /* FLAG_ZERO with infinite number. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%015F %d", -1.0 / 0.0, 33, 44, 55);
+ my_snprintf (result, sizeof (result), "%015F %d", - Infinityd (), 33, 44, 55);
ASSERT (strcmp (result, " -INF 33") == 0
|| strcmp (result, " -INFINITY 33") == 0);
ASSERT (retval == strlen (result));
{ /* Positive infinity. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%LF %d", 1.0L / 0.0L, 33, 44, 55);
+ my_snprintf (result, sizeof (result), "%LF %d", Infinityl (), 33, 44, 55);
ASSERT (strcmp (result, "INF 33") == 0
|| strcmp (result, "INFINITY 33") == 0);
ASSERT (retval == strlen (result));
{ /* Negative infinity. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%LF %d", -1.0L / 0.0L, 33, 44, 55);
+ my_snprintf (result, sizeof (result), "%LF %d", - Infinityl (), 33, 44, 55);
ASSERT (strcmp (result, "-INF 33") == 0
|| strcmp (result, "-INFINITY 33") == 0);
ASSERT (retval == strlen (result));
{ /* FLAG_ZERO with infinite number. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%015LF %d", -1.0L / 0.0L, 33, 44, 55);
+ my_snprintf (result, sizeof (result), "%015LF %d", - Infinityl (), 33, 44, 55);
ASSERT (strcmp (result, " -INF 33") == 0
|| strcmp (result, " -INFINITY 33") == 0);
ASSERT (retval == strlen (result));
{ /* Positive infinity. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%e %d", 1.0 / 0.0, 33, 44, 55);
+ my_snprintf (result, sizeof (result), "%e %d", Infinityd (), 33, 44, 55);
ASSERT (strcmp (result, "inf 33") == 0
|| strcmp (result, "infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* Negative infinity. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%e %d", -1.0 / 0.0, 33, 44, 55);
+ my_snprintf (result, sizeof (result), "%e %d", - Infinityd (), 33, 44, 55);
ASSERT (strcmp (result, "-inf 33") == 0
|| strcmp (result, "-infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* FLAG_ZERO with infinite number. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%015e %d", -1.0 / 0.0, 33, 44, 55);
+ my_snprintf (result, sizeof (result), "%015e %d", - Infinityd (), 33, 44, 55);
ASSERT (strcmp (result, " -inf 33") == 0
|| strcmp (result, " -infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* Positive infinity. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%Le %d", 1.0L / 0.0L, 33, 44, 55);
+ my_snprintf (result, sizeof (result), "%Le %d", Infinityl (), 33, 44, 55);
ASSERT (strcmp (result, "inf 33") == 0
|| strcmp (result, "infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* Negative infinity. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%Le %d", -1.0L / 0.0L, 33, 44, 55);
+ my_snprintf (result, sizeof (result), "%Le %d", - Infinityl (), 33, 44, 55);
ASSERT (strcmp (result, "-inf 33") == 0
|| strcmp (result, "-infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* FLAG_ZERO with infinite number. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%015Le %d", -1.0L / 0.0L, 33, 44, 55);
+ my_snprintf (result, sizeof (result), "%015Le %d", - Infinityl (), 33, 44, 55);
ASSERT (strcmp (result, " -inf 33") == 0
|| strcmp (result, " -infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* Positive infinity. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%g %d", 1.0 / 0.0, 33, 44, 55);
+ my_snprintf (result, sizeof (result), "%g %d", Infinityd (), 33, 44, 55);
ASSERT (strcmp (result, "inf 33") == 0
|| strcmp (result, "infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* Negative infinity. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%g %d", -1.0 / 0.0, 33, 44, 55);
+ my_snprintf (result, sizeof (result), "%g %d", - Infinityd (), 33, 44, 55);
ASSERT (strcmp (result, "-inf 33") == 0
|| strcmp (result, "-infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* FLAG_ZERO with infinite number. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%015g %d", -1.0 / 0.0, 33, 44, 55);
+ my_snprintf (result, sizeof (result), "%015g %d", - Infinityd (), 33, 44, 55);
ASSERT (strcmp (result, " -inf 33") == 0
|| strcmp (result, " -infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* Positive infinity. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%Lg %d", 1.0L / 0.0L, 33, 44, 55);
+ my_snprintf (result, sizeof (result), "%Lg %d", Infinityl (), 33, 44, 55);
ASSERT (strcmp (result, "inf 33") == 0
|| strcmp (result, "infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* Negative infinity. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%Lg %d", -1.0L / 0.0L, 33, 44, 55);
+ my_snprintf (result, sizeof (result), "%Lg %d", - Infinityl (), 33, 44, 55);
ASSERT (strcmp (result, "-inf 33") == 0
|| strcmp (result, "-infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* FLAG_ZERO with infinite number. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%015Lg %d", -1.0L / 0.0L, 33, 44, 55);
+ my_snprintf (result, sizeof (result), "%015Lg %d", - Infinityl (), 33, 44, 55);
ASSERT (strcmp (result, " -inf 33") == 0
|| strcmp (result, " -infinity 33") == 0);
ASSERT (retval == strlen (result));
/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
#include "minus-zero.h"
+#include "infinity.h"
#include "nan.h"
/* The SGI MIPS floating-point format does not distinguish 0.0 and -0.0. */
{ /* Positive infinity. */
char result[1000];
int retval =
- my_sprintf (result, "%a %d", 1.0 / 0.0, 33, 44, 55);
+ my_sprintf (result, "%a %d", Infinityd (), 33, 44, 55);
ASSERT (strcmp (result, "inf 33") == 0);
ASSERT (retval == strlen (result));
}
{ /* Negative infinity. */
char result[1000];
int retval =
- my_sprintf (result, "%a %d", -1.0 / 0.0, 33, 44, 55);
+ my_sprintf (result, "%a %d", - Infinityd (), 33, 44, 55);
ASSERT (strcmp (result, "-inf 33") == 0);
ASSERT (retval == strlen (result));
}
{ /* FLAG_ZERO with infinite number. */
char result[1000];
int retval =
- my_sprintf (result, "%010a %d", 1.0 / 0.0, 33, 44, 55);
+ my_sprintf (result, "%010a %d", Infinityd (), 33, 44, 55);
/* "0000000inf 33" is not a valid result; see
<http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html> */
ASSERT (strcmp (result, " inf 33") == 0);
{ /* Positive infinity. */
char result[1000];
int retval =
- my_sprintf (result, "%La %d", 1.0L / 0.0L, 33, 44, 55);
+ my_sprintf (result, "%La %d", Infinityl (), 33, 44, 55);
ASSERT (strcmp (result, "inf 33") == 0);
ASSERT (retval == strlen (result));
}
{ /* Negative infinity. */
char result[1000];
int retval =
- my_sprintf (result, "%La %d", -1.0L / 0.0L, 33, 44, 55);
+ my_sprintf (result, "%La %d", - Infinityl (), 33, 44, 55);
ASSERT (strcmp (result, "-inf 33") == 0);
ASSERT (retval == strlen (result));
}
{ /* FLAG_ZERO with infinite number. */
char result[1000];
int retval =
- my_sprintf (result, "%010La %d", 1.0L / 0.0L, 33, 44, 55);
+ my_sprintf (result, "%010La %d", Infinityl (), 33, 44, 55);
/* "0000000inf 33" is not a valid result; see
<http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html> */
ASSERT (strcmp (result, " inf 33") == 0);
{ /* Positive infinity. */
char result[1000];
int retval =
- my_sprintf (result, "%f %d", 1.0 / 0.0, 33, 44, 55);
+ my_sprintf (result, "%f %d", Infinityd (), 33, 44, 55);
ASSERT (strcmp (result, "inf 33") == 0
|| strcmp (result, "infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* Negative infinity. */
char result[1000];
int retval =
- my_sprintf (result, "%f %d", -1.0 / 0.0, 33, 44, 55);
+ my_sprintf (result, "%f %d", - Infinityd (), 33, 44, 55);
ASSERT (strcmp (result, "-inf 33") == 0
|| strcmp (result, "-infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* FLAG_ZERO with infinite number. */
char result[1000];
int retval =
- my_sprintf (result, "%015f %d", -1.0 / 0.0, 33, 44, 55);
+ my_sprintf (result, "%015f %d", - Infinityd (), 33, 44, 55);
ASSERT (strcmp (result, " -inf 33") == 0
|| strcmp (result, " -infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* Positive infinity. */
char result[1000];
int retval =
- my_sprintf (result, "%Lf %d", 1.0L / 0.0L, 33, 44, 55);
+ my_sprintf (result, "%Lf %d", Infinityl (), 33, 44, 55);
ASSERT (strcmp (result, "inf 33") == 0
|| strcmp (result, "infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* Negative infinity. */
char result[1000];
int retval =
- my_sprintf (result, "%Lf %d", -1.0L / 0.0L, 33, 44, 55);
+ my_sprintf (result, "%Lf %d", - Infinityl (), 33, 44, 55);
ASSERT (strcmp (result, "-inf 33") == 0
|| strcmp (result, "-infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* FLAG_ZERO with infinite number. */
char result[1000];
int retval =
- my_sprintf (result, "%015Lf %d", -1.0L / 0.0L, 33, 44, 55);
+ my_sprintf (result, "%015Lf %d", - Infinityl (), 33, 44, 55);
ASSERT (strcmp (result, " -inf 33") == 0
|| strcmp (result, " -infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* Positive infinity. */
char result[1000];
int retval =
- my_sprintf (result, "%F %d", 1.0 / 0.0, 33, 44, 55);
+ my_sprintf (result, "%F %d", Infinityd (), 33, 44, 55);
ASSERT (strcmp (result, "INF 33") == 0
|| strcmp (result, "INFINITY 33") == 0);
ASSERT (retval == strlen (result));
{ /* Negative infinity. */
char result[1000];
int retval =
- my_sprintf (result, "%F %d", -1.0 / 0.0, 33, 44, 55);
+ my_sprintf (result, "%F %d", - Infinityd (), 33, 44, 55);
ASSERT (strcmp (result, "-INF 33") == 0
|| strcmp (result, "-INFINITY 33") == 0);
ASSERT (retval == strlen (result));
{ /* FLAG_ZERO with infinite number. */
char result[1000];
int retval =
- my_sprintf (result, "%015F %d", -1.0 / 0.0, 33, 44, 55);
+ my_sprintf (result, "%015F %d", - Infinityd (), 33, 44, 55);
ASSERT (strcmp (result, " -INF 33") == 0
|| strcmp (result, " -INFINITY 33") == 0);
ASSERT (retval == strlen (result));
{ /* Positive infinity. */
char result[1000];
int retval =
- my_sprintf (result, "%LF %d", 1.0L / 0.0L, 33, 44, 55);
+ my_sprintf (result, "%LF %d", Infinityl (), 33, 44, 55);
ASSERT (strcmp (result, "INF 33") == 0
|| strcmp (result, "INFINITY 33") == 0);
ASSERT (retval == strlen (result));
{ /* Negative infinity. */
char result[1000];
int retval =
- my_sprintf (result, "%LF %d", -1.0L / 0.0L, 33, 44, 55);
+ my_sprintf (result, "%LF %d", - Infinityl (), 33, 44, 55);
ASSERT (strcmp (result, "-INF 33") == 0
|| strcmp (result, "-INFINITY 33") == 0);
ASSERT (retval == strlen (result));
{ /* FLAG_ZERO with infinite number. */
char result[1000];
int retval =
- my_sprintf (result, "%015LF %d", -1.0L / 0.0L, 33, 44, 55);
+ my_sprintf (result, "%015LF %d", - Infinityl (), 33, 44, 55);
ASSERT (strcmp (result, " -INF 33") == 0
|| strcmp (result, " -INFINITY 33") == 0);
ASSERT (retval == strlen (result));
{ /* Positive infinity. */
char result[1000];
int retval =
- my_sprintf (result, "%e %d", 1.0 / 0.0, 33, 44, 55);
+ my_sprintf (result, "%e %d", Infinityd (), 33, 44, 55);
ASSERT (strcmp (result, "inf 33") == 0
|| strcmp (result, "infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* Negative infinity. */
char result[1000];
int retval =
- my_sprintf (result, "%e %d", -1.0 / 0.0, 33, 44, 55);
+ my_sprintf (result, "%e %d", - Infinityd (), 33, 44, 55);
ASSERT (strcmp (result, "-inf 33") == 0
|| strcmp (result, "-infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* FLAG_ZERO with infinite number. */
char result[1000];
int retval =
- my_sprintf (result, "%015e %d", -1.0 / 0.0, 33, 44, 55);
+ my_sprintf (result, "%015e %d", - Infinityd (), 33, 44, 55);
ASSERT (strcmp (result, " -inf 33") == 0
|| strcmp (result, " -infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* Positive infinity. */
char result[1000];
int retval =
- my_sprintf (result, "%Le %d", 1.0L / 0.0L, 33, 44, 55);
+ my_sprintf (result, "%Le %d", Infinityl (), 33, 44, 55);
ASSERT (strcmp (result, "inf 33") == 0
|| strcmp (result, "infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* Negative infinity. */
char result[1000];
int retval =
- my_sprintf (result, "%Le %d", -1.0L / 0.0L, 33, 44, 55);
+ my_sprintf (result, "%Le %d", - Infinityl (), 33, 44, 55);
ASSERT (strcmp (result, "-inf 33") == 0
|| strcmp (result, "-infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* FLAG_ZERO with infinite number. */
char result[1000];
int retval =
- my_sprintf (result, "%015Le %d", -1.0L / 0.0L, 33, 44, 55);
+ my_sprintf (result, "%015Le %d", - Infinityl (), 33, 44, 55);
ASSERT (strcmp (result, " -inf 33") == 0
|| strcmp (result, " -infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* Positive infinity. */
char result[1000];
int retval =
- my_sprintf (result, "%g %d", 1.0 / 0.0, 33, 44, 55);
+ my_sprintf (result, "%g %d", Infinityd (), 33, 44, 55);
ASSERT (strcmp (result, "inf 33") == 0
|| strcmp (result, "infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* Negative infinity. */
char result[1000];
int retval =
- my_sprintf (result, "%g %d", -1.0 / 0.0, 33, 44, 55);
+ my_sprintf (result, "%g %d", - Infinityd (), 33, 44, 55);
ASSERT (strcmp (result, "-inf 33") == 0
|| strcmp (result, "-infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* FLAG_ZERO with infinite number. */
char result[1000];
int retval =
- my_sprintf (result, "%015g %d", -1.0 / 0.0, 33, 44, 55);
+ my_sprintf (result, "%015g %d", - Infinityd (), 33, 44, 55);
ASSERT (strcmp (result, " -inf 33") == 0
|| strcmp (result, " -infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* Positive infinity. */
char result[1000];
int retval =
- my_sprintf (result, "%Lg %d", 1.0L / 0.0L, 33, 44, 55);
+ my_sprintf (result, "%Lg %d", Infinityl (), 33, 44, 55);
ASSERT (strcmp (result, "inf 33") == 0
|| strcmp (result, "infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* Negative infinity. */
char result[1000];
int retval =
- my_sprintf (result, "%Lg %d", -1.0L / 0.0L, 33, 44, 55);
+ my_sprintf (result, "%Lg %d", - Infinityl (), 33, 44, 55);
ASSERT (strcmp (result, "-inf 33") == 0
|| strcmp (result, "-infinity 33") == 0);
ASSERT (retval == strlen (result));
{ /* FLAG_ZERO with infinite number. */
char result[1000];
int retval =
- my_sprintf (result, "%015Lg %d", -1.0L / 0.0L, 33, 44, 55);
+ my_sprintf (result, "%015Lg %d", - Infinityl (), 33, 44, 55);
ASSERT (strcmp (result, " -inf 33") == 0
|| strcmp (result, " -infinity 33") == 0);
ASSERT (retval == strlen (result));
#include "isnand-nolibm.h"
#include "minus-zero.h"
+#include "infinity.h"
#include "nan.h"
#include "macros.h"
ASSERT (trunc (-65536.0) == -65536.0);
ASSERT (trunc (-2.341e31) == -2.341e31);
/* Infinite numbers. */
- ASSERT (trunc (1.0 / 0.0) == 1.0 / 0.0);
- ASSERT (trunc (-1.0 / 0.0) == -1.0 / 0.0);
+ ASSERT (trunc (Infinityd ()) == Infinityd ());
+ ASSERT (trunc (- Infinityd ()) == - Infinityd ());
/* NaNs. */
ASSERT (isnand (trunc (NaNd ())));
#include "isnanf-nolibm.h"
#include "minus-zero.h"
+#include "infinity.h"
#include "nan.h"
#include "macros.h"
ASSERT (truncf (-65536.0f) == -65536.0f);
ASSERT (truncf (-2.341e31f) == -2.341e31f);
/* Infinite numbers. */
- ASSERT (truncf (1.0f / 0.0f) == 1.0f / 0.0f);
- ASSERT (truncf (-1.0f / 0.0f) == -1.0f / 0.0f);
+ ASSERT (truncf (Infinityf ()) == Infinityf ());
+ ASSERT (truncf (- Infinityf ()) == - Infinityf ());
/* NaNs. */
ASSERT (isnanf (truncf (NaNf ())));
#include "fpucw.h"
#include "isnanl-nolibm.h"
#include "minus-zero.h"
+#include "infinity.h"
#include "nan.h"
#include "macros.h"
ASSERT (truncl (-65536.0L) == -65536.0L);
ASSERT (truncl (-2.341e31L) == -2.341e31L);
/* Infinite numbers. */
- ASSERT (truncl (1.0L / 0.0L) == 1.0L / 0.0L);
- ASSERT (truncl (-1.0L / 0.0L) == -1.0L / 0.0L);
+ ASSERT (truncl (Infinityl ()) == Infinityl ());
+ ASSERT (truncl (- Infinityl ()) == - Infinityl ());
/* NaNs. */
ASSERT (isnanl (truncl (NaNl ())));
#include "macros.h"
#include "minus-zero.h"
+#include "infinity.h"
#include "nan.h"
/* The SGI MIPS floating-point format does not distinguish 0.0 and -0.0. */
{ /* Positive infinity. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%a %d", 1.0 / 0.0, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%a %d", Infinityd (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "inf 33") == 0);
ASSERT (length == strlen (result));
{ /* Negative infinity. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%a %d", -1.0 / 0.0, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%a %d", - Infinityd (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "-inf 33") == 0);
ASSERT (length == strlen (result));
{ /* FLAG_ZERO with infinite number. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%010a %d", 1.0 / 0.0, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%010a %d", Infinityd (), 33, 44, 55);
ASSERT (result != NULL);
/* "0000000inf 33" is not a valid result; see
<http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html> */
{ /* Positive infinity. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%La %d", 1.0L / 0.0L, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%La %d", Infinityl (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "inf 33") == 0);
ASSERT (length == strlen (result));
{ /* Negative infinity. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%La %d", -1.0L / 0.0L, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%La %d", - Infinityl (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "-inf 33") == 0);
ASSERT (length == strlen (result));
{ /* FLAG_ZERO with infinite number. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%010La %d", 1.0L / 0.0L, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%010La %d", Infinityl (), 33, 44, 55);
ASSERT (result != NULL);
/* "0000000inf 33" is not a valid result; see
<http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html> */
{ /* Positive infinity. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%f %d", 1.0 / 0.0, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%f %d", Infinityd (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "inf 33") == 0
|| strcmp (result, "infinity 33") == 0);
{ /* Negative infinity. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%f %d", -1.0 / 0.0, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%f %d", - Infinityd (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "-inf 33") == 0
|| strcmp (result, "-infinity 33") == 0);
{ /* FLAG_ZERO with infinite number. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%015f %d", -1.0 / 0.0, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%015f %d", - Infinityd (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, " -inf 33") == 0
|| strcmp (result, " -infinity 33") == 0);
{ /* Positive infinity. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%Lf %d", 1.0L / 0.0L, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%Lf %d", Infinityl (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "inf 33") == 0
|| strcmp (result, "infinity 33") == 0);
{ /* Negative infinity. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%Lf %d", -1.0L / 0.0L, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%Lf %d", - Infinityl (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "-inf 33") == 0
|| strcmp (result, "-infinity 33") == 0);
{ /* FLAG_ZERO with infinite number. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%015Lf %d", -1.0L / 0.0L, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%015Lf %d", - Infinityl (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, " -inf 33") == 0
|| strcmp (result, " -infinity 33") == 0);
{ /* Positive infinity. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%F %d", 1.0 / 0.0, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%F %d", Infinityd (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "INF 33") == 0
|| strcmp (result, "INFINITY 33") == 0);
{ /* Negative infinity. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%F %d", -1.0 / 0.0, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%F %d", - Infinityd (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "-INF 33") == 0
|| strcmp (result, "-INFINITY 33") == 0);
{ /* FLAG_ZERO with infinite number. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%015F %d", -1.0 / 0.0, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%015F %d", - Infinityd (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, " -INF 33") == 0
|| strcmp (result, " -INFINITY 33") == 0);
{ /* Positive infinity. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%LF %d", 1.0L / 0.0L, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%LF %d", Infinityl (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "INF 33") == 0
|| strcmp (result, "INFINITY 33") == 0);
{ /* Negative infinity. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%LF %d", -1.0L / 0.0L, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%LF %d", - Infinityl (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "-INF 33") == 0
|| strcmp (result, "-INFINITY 33") == 0);
{ /* FLAG_ZERO with infinite number. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%015LF %d", -1.0L / 0.0L, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%015LF %d", - Infinityl (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, " -INF 33") == 0
|| strcmp (result, " -INFINITY 33") == 0);
{ /* Positive infinity. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%e %d", 1.0 / 0.0, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%e %d", Infinityd (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "inf 33") == 0
|| strcmp (result, "infinity 33") == 0);
{ /* Negative infinity. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%e %d", -1.0 / 0.0, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%e %d", - Infinityd (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "-inf 33") == 0
|| strcmp (result, "-infinity 33") == 0);
{ /* FLAG_ZERO with infinite number. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%015e %d", -1.0 / 0.0, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%015e %d", - Infinityd (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, " -inf 33") == 0
|| strcmp (result, " -infinity 33") == 0);
{ /* Positive infinity. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%Le %d", 1.0L / 0.0L, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%Le %d", Infinityl (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "inf 33") == 0
|| strcmp (result, "infinity 33") == 0);
{ /* Negative infinity. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%Le %d", -1.0L / 0.0L, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%Le %d", - Infinityl (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "-inf 33") == 0
|| strcmp (result, "-infinity 33") == 0);
{ /* FLAG_ZERO with infinite number. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%015Le %d", -1.0L / 0.0L, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%015Le %d", - Infinityl (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, " -inf 33") == 0
|| strcmp (result, " -infinity 33") == 0);
{ /* Positive infinity. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%g %d", 1.0 / 0.0, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%g %d", Infinityd (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "inf 33") == 0
|| strcmp (result, "infinity 33") == 0);
{ /* Negative infinity. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%g %d", -1.0 / 0.0, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%g %d", - Infinityd (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "-inf 33") == 0
|| strcmp (result, "-infinity 33") == 0);
{ /* FLAG_ZERO with infinite number. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%015g %d", -1.0 / 0.0, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%015g %d", - Infinityd (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, " -inf 33") == 0
|| strcmp (result, " -infinity 33") == 0);
{ /* Positive infinity. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%Lg %d", 1.0L / 0.0L, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%Lg %d", Infinityl (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "inf 33") == 0
|| strcmp (result, "infinity 33") == 0);
{ /* Negative infinity. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%Lg %d", -1.0L / 0.0L, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%Lg %d", - Infinityl (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "-inf 33") == 0
|| strcmp (result, "-infinity 33") == 0);
{ /* FLAG_ZERO with infinite number. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%015Lg %d", -1.0L / 0.0L, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%015Lg %d", - Infinityl (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, " -inf 33") == 0
|| strcmp (result, " -infinity 33") == 0);
#include "macros.h"
#include "minus-zero.h"
+#include "infinity.h"
#include "nan.h"
/* The SGI MIPS floating-point format does not distinguish 0.0 and -0.0. */
{ /* Positive infinity. */
char *result;
int retval =
- my_asprintf (&result, "%a %d", 1.0 / 0.0, 33, 44, 55);
+ my_asprintf (&result, "%a %d", Infinityd (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "inf 33") == 0);
ASSERT (retval == strlen (result));
{ /* Negative infinity. */
char *result;
int retval =
- my_asprintf (&result, "%a %d", -1.0 / 0.0, 33, 44, 55);
+ my_asprintf (&result, "%a %d", - Infinityd (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "-inf 33") == 0);
ASSERT (retval == strlen (result));
{ /* FLAG_ZERO with infinite number. */
char *result;
int retval =
- my_asprintf (&result, "%010a %d", 1.0 / 0.0, 33, 44, 55);
+ my_asprintf (&result, "%010a %d", Infinityd (), 33, 44, 55);
ASSERT (result != NULL);
/* "0000000inf 33" is not a valid result; see
<http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html> */
{ /* Positive infinity. */
char *result;
int retval =
- my_asprintf (&result, "%La %d", 1.0L / 0.0L, 33, 44, 55);
+ my_asprintf (&result, "%La %d", Infinityl (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "inf 33") == 0);
ASSERT (retval == strlen (result));
{ /* Negative infinity. */
char *result;
int retval =
- my_asprintf (&result, "%La %d", -1.0L / 0.0L, 33, 44, 55);
+ my_asprintf (&result, "%La %d", - Infinityl (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "-inf 33") == 0);
ASSERT (retval == strlen (result));
{ /* FLAG_ZERO with infinite number. */
char *result;
int retval =
- my_asprintf (&result, "%010La %d", 1.0L / 0.0L, 33, 44, 55);
+ my_asprintf (&result, "%010La %d", Infinityl (), 33, 44, 55);
ASSERT (result != NULL);
/* "0000000inf 33" is not a valid result; see
<http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html> */
{ /* Positive infinity. */
char *result;
int retval =
- my_asprintf (&result, "%f %d", 1.0 / 0.0, 33, 44, 55);
+ my_asprintf (&result, "%f %d", Infinityd (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "inf 33") == 0
|| strcmp (result, "infinity 33") == 0);
{ /* Negative infinity. */
char *result;
int retval =
- my_asprintf (&result, "%f %d", -1.0 / 0.0, 33, 44, 55);
+ my_asprintf (&result, "%f %d", - Infinityd (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "-inf 33") == 0
|| strcmp (result, "-infinity 33") == 0);
{ /* FLAG_ZERO with infinite number. */
char *result;
int retval =
- my_asprintf (&result, "%015f %d", -1.0 / 0.0, 33, 44, 55);
+ my_asprintf (&result, "%015f %d", - Infinityd (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, " -inf 33") == 0
|| strcmp (result, " -infinity 33") == 0);
{ /* Positive infinity. */
char *result;
int retval =
- my_asprintf (&result, "%Lf %d", 1.0L / 0.0L, 33, 44, 55);
+ my_asprintf (&result, "%Lf %d", Infinityl (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "inf 33") == 0
|| strcmp (result, "infinity 33") == 0);
{ /* Negative infinity. */
char *result;
int retval =
- my_asprintf (&result, "%Lf %d", -1.0L / 0.0L, 33, 44, 55);
+ my_asprintf (&result, "%Lf %d", - Infinityl (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "-inf 33") == 0
|| strcmp (result, "-infinity 33") == 0);
{ /* FLAG_ZERO with infinite number. */
char *result;
int retval =
- my_asprintf (&result, "%015Lf %d", -1.0L / 0.0L, 33, 44, 55);
+ my_asprintf (&result, "%015Lf %d", - Infinityl (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, " -inf 33") == 0
|| strcmp (result, " -infinity 33") == 0);
{ /* Positive infinity. */
char *result;
int retval =
- my_asprintf (&result, "%F %d", 1.0 / 0.0, 33, 44, 55);
+ my_asprintf (&result, "%F %d", Infinityd (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "INF 33") == 0
|| strcmp (result, "INFINITY 33") == 0);
{ /* Negative infinity. */
char *result;
int retval =
- my_asprintf (&result, "%F %d", -1.0 / 0.0, 33, 44, 55);
+ my_asprintf (&result, "%F %d", - Infinityd (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "-INF 33") == 0
|| strcmp (result, "-INFINITY 33") == 0);
{ /* FLAG_ZERO with infinite number. */
char *result;
int retval =
- my_asprintf (&result, "%015F %d", -1.0 / 0.0, 33, 44, 55);
+ my_asprintf (&result, "%015F %d", - Infinityd (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, " -INF 33") == 0
|| strcmp (result, " -INFINITY 33") == 0);
{ /* Positive infinity. */
char *result;
int retval =
- my_asprintf (&result, "%LF %d", 1.0L / 0.0L, 33, 44, 55);
+ my_asprintf (&result, "%LF %d", Infinityl (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "INF 33") == 0
|| strcmp (result, "INFINITY 33") == 0);
{ /* Negative infinity. */
char *result;
int retval =
- my_asprintf (&result, "%LF %d", -1.0L / 0.0L, 33, 44, 55);
+ my_asprintf (&result, "%LF %d", - Infinityl (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "-INF 33") == 0
|| strcmp (result, "-INFINITY 33") == 0);
{ /* FLAG_ZERO with infinite number. */
char *result;
int retval =
- my_asprintf (&result, "%015LF %d", -1.0L / 0.0L, 33, 44, 55);
+ my_asprintf (&result, "%015LF %d", - Infinityl (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, " -INF 33") == 0
|| strcmp (result, " -INFINITY 33") == 0);
{ /* Positive infinity. */
char *result;
int retval =
- my_asprintf (&result, "%e %d", 1.0 / 0.0, 33, 44, 55);
+ my_asprintf (&result, "%e %d", Infinityd (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "inf 33") == 0
|| strcmp (result, "infinity 33") == 0);
{ /* Negative infinity. */
char *result;
int retval =
- my_asprintf (&result, "%e %d", -1.0 / 0.0, 33, 44, 55);
+ my_asprintf (&result, "%e %d", - Infinityd (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "-inf 33") == 0
|| strcmp (result, "-infinity 33") == 0);
{ /* FLAG_ZERO with infinite number. */
char *result;
int retval =
- my_asprintf (&result, "%015e %d", -1.0 / 0.0, 33, 44, 55);
+ my_asprintf (&result, "%015e %d", - Infinityd (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, " -inf 33") == 0
|| strcmp (result, " -infinity 33") == 0);
{ /* Positive infinity. */
char *result;
int retval =
- my_asprintf (&result, "%Le %d", 1.0L / 0.0L, 33, 44, 55);
+ my_asprintf (&result, "%Le %d", Infinityl (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "inf 33") == 0
|| strcmp (result, "infinity 33") == 0);
{ /* Negative infinity. */
char *result;
int retval =
- my_asprintf (&result, "%Le %d", -1.0L / 0.0L, 33, 44, 55);
+ my_asprintf (&result, "%Le %d", - Infinityl (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "-inf 33") == 0
|| strcmp (result, "-infinity 33") == 0);
{ /* FLAG_ZERO with infinite number. */
char *result;
int retval =
- my_asprintf (&result, "%015Le %d", -1.0L / 0.0L, 33, 44, 55);
+ my_asprintf (&result, "%015Le %d", - Infinityl (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, " -inf 33") == 0
|| strcmp (result, " -infinity 33") == 0);
{ /* Positive infinity. */
char *result;
int retval =
- my_asprintf (&result, "%g %d", 1.0 / 0.0, 33, 44, 55);
+ my_asprintf (&result, "%g %d", Infinityd (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "inf 33") == 0
|| strcmp (result, "infinity 33") == 0);
{ /* Negative infinity. */
char *result;
int retval =
- my_asprintf (&result, "%g %d", -1.0 / 0.0, 33, 44, 55);
+ my_asprintf (&result, "%g %d", - Infinityd (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "-inf 33") == 0
|| strcmp (result, "-infinity 33") == 0);
{ /* FLAG_ZERO with infinite number. */
char *result;
int retval =
- my_asprintf (&result, "%015g %d", -1.0 / 0.0, 33, 44, 55);
+ my_asprintf (&result, "%015g %d", - Infinityd (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, " -inf 33") == 0
|| strcmp (result, " -infinity 33") == 0);
{ /* Positive infinity. */
char *result;
int retval =
- my_asprintf (&result, "%Lg %d", 1.0L / 0.0L, 33, 44, 55);
+ my_asprintf (&result, "%Lg %d", Infinityl (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "inf 33") == 0
|| strcmp (result, "infinity 33") == 0);
{ /* Negative infinity. */
char *result;
int retval =
- my_asprintf (&result, "%Lg %d", -1.0L / 0.0L, 33, 44, 55);
+ my_asprintf (&result, "%Lg %d", - Infinityl (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, "-inf 33") == 0
|| strcmp (result, "-infinity 33") == 0);
{ /* FLAG_ZERO with infinite number. */
char *result;
int retval =
- my_asprintf (&result, "%015Lg %d", -1.0L / 0.0L, 33, 44, 55);
+ my_asprintf (&result, "%015Lg %d", - Infinityl (), 33, 44, 55);
ASSERT (result != NULL);
ASSERT (strcmp (result, " -inf 33") == 0
|| strcmp (result, " -infinity 33") == 0);