Mercurial > hg > octave-nkf > gnulib-hg
comparison tests/test-signbit.c @ 15595:328819af1c02
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.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Sun, 11 Sep 2011 17:29:11 +0200 |
parents | 97fc9a21a8fb |
children | 8250f2777afc |
comparison
equal
deleted
inserted
replaced
15594:f4cfbb6036d8 | 15595:328819af1c02 |
---|---|
27 | 27 |
28 #include <float.h> | 28 #include <float.h> |
29 #include <limits.h> | 29 #include <limits.h> |
30 | 30 |
31 #include "minus-zero.h" | 31 #include "minus-zero.h" |
32 #include "infinity.h" | |
32 #include "macros.h" | 33 #include "macros.h" |
33 | 34 |
34 float zerof = 0.0f; | 35 float zerof = 0.0f; |
35 double zerod = 0.0; | 36 double zerod = 0.0; |
36 long double zerol = 0.0L; | 37 long double zerol = 0.0L; |
50 if (1.0f / minus_zerof < 0) | 51 if (1.0f / minus_zerof < 0) |
51 ASSERT (signbit (minus_zerof)); | 52 ASSERT (signbit (minus_zerof)); |
52 else | 53 else |
53 ASSERT (!signbit (minus_zerof)); | 54 ASSERT (!signbit (minus_zerof)); |
54 /* Infinite values. */ | 55 /* Infinite values. */ |
55 ASSERT (!signbit (1.0f / 0.0f)); | 56 ASSERT (!signbit (Infinityf ())); |
56 ASSERT (signbit (-1.0f / 0.0f)); | 57 ASSERT (signbit (- Infinityf ())); |
57 /* Quiet NaN. */ | 58 /* Quiet NaN. */ |
58 (void) signbit (zerof / zerof); | 59 (void) signbit (zerof / zerof); |
59 #if defined FLT_EXPBIT0_WORD && defined FLT_EXPBIT0_BIT | 60 #if defined FLT_EXPBIT0_WORD && defined FLT_EXPBIT0_BIT |
60 /* Signalling NaN. */ | 61 /* Signalling NaN. */ |
61 { | 62 { |
95 if (1.0 / minus_zerod < 0) | 96 if (1.0 / minus_zerod < 0) |
96 ASSERT (signbit (minus_zerod)); | 97 ASSERT (signbit (minus_zerod)); |
97 else | 98 else |
98 ASSERT (!signbit (minus_zerod)); | 99 ASSERT (!signbit (minus_zerod)); |
99 /* Infinite values. */ | 100 /* Infinite values. */ |
100 ASSERT (!signbit (1.0 / 0.0)); | 101 ASSERT (!signbit (Infinityd ())); |
101 ASSERT (signbit (-1.0 / 0.0)); | 102 ASSERT (signbit (- Infinityd ())); |
102 /* Quiet NaN. */ | 103 /* Quiet NaN. */ |
103 (void) signbit (zerod / zerod); | 104 (void) signbit (zerod / zerod); |
104 #if defined DBL_EXPBIT0_WORD && defined DBL_EXPBIT0_BIT | 105 #if defined DBL_EXPBIT0_WORD && defined DBL_EXPBIT0_BIT |
105 /* Signalling NaN. */ | 106 /* Signalling NaN. */ |
106 { | 107 { |
138 if (1.0L / minus_zerol < 0) | 139 if (1.0L / minus_zerol < 0) |
139 ASSERT (signbit (minus_zerol)); | 140 ASSERT (signbit (minus_zerol)); |
140 else | 141 else |
141 ASSERT (!signbit (minus_zerol)); | 142 ASSERT (!signbit (minus_zerol)); |
142 /* Infinite values. */ | 143 /* Infinite values. */ |
143 ASSERT (!signbit (1.0L / 0.0L)); | 144 ASSERT (!signbit (Infinityl ())); |
144 ASSERT (signbit (-1.0L / 0.0L)); | 145 ASSERT (signbit (- Infinityl ())); |
145 /* Quiet NaN. */ | 146 /* Quiet NaN. */ |
146 (void) signbit (zerol / zerol); | 147 (void) signbit (zerol / zerol); |
147 #if defined LDBL_EXPBIT0_WORD && defined LDBL_EXPBIT0_BIT | 148 #if defined LDBL_EXPBIT0_WORD && defined LDBL_EXPBIT0_BIT |
148 /* Signalling NaN. */ | 149 /* Signalling NaN. */ |
149 { | 150 { |