From 21826ff611ccf98a35d89b0c8661b4956c8d80e6 Mon Sep 17 00:00:00 2001 From: No Author Date: Sun, 29 May 2005 20:45:43 +0000 Subject: [PATCH] This commit was manufactured by cvs2svn to create branch 'gcc-3_4-branch'. From-SVN: r100332 --- gcc/testsuite/gcc.dg/c99-math-double-1.c | 18 +++ gcc/testsuite/gcc.dg/c99-math-float-1.c | 18 +++ gcc/testsuite/gcc.dg/c99-math-long-double-1.c | 18 +++ gcc/testsuite/gcc.dg/c99-math.h | 111 ++++++++++++++++++ 4 files changed, 165 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/c99-math-double-1.c create mode 100644 gcc/testsuite/gcc.dg/c99-math-float-1.c create mode 100644 gcc/testsuite/gcc.dg/c99-math-long-double-1.c create mode 100644 gcc/testsuite/gcc.dg/c99-math.h diff --git a/gcc/testsuite/gcc.dg/c99-math-double-1.c b/gcc/testsuite/gcc.dg/c99-math-double-1.c new file mode 100644 index 000000000000..227b6e26caca --- /dev/null +++ b/gcc/testsuite/gcc.dg/c99-math-double-1.c @@ -0,0 +1,18 @@ +/* { dg-do run { target *-*-solaris2.1[0-9]* } } */ +/* { dg-options "-std=c99 -O" } */ + +#include +#include "c99-math.h" + +int main(void) +{ + double nan = NAN; + double inf = INFINITY; + double huge = HUGE_VAL; + double norm = __DBL_MIN__; + double zero = 0.0; + + C99_MATH_TESTS (nan, inf, huge, norm, zero) + + return 0; +} diff --git a/gcc/testsuite/gcc.dg/c99-math-float-1.c b/gcc/testsuite/gcc.dg/c99-math-float-1.c new file mode 100644 index 000000000000..9dd4e9a04837 --- /dev/null +++ b/gcc/testsuite/gcc.dg/c99-math-float-1.c @@ -0,0 +1,18 @@ +/* { dg-do run { target *-*-solaris2.1[0-9]* } } */ +/* { dg-options "-std=c99 -O" } */ + +#include +#include "c99-math.h" + +int main(void) +{ + float nan = NAN; + float inf = INFINITY; + float huge = HUGE_VALF; + float norm = __FLT_MIN__; + float zero = 0.0f; + + C99_MATH_TESTS (nan, inf, huge, norm, zero) + + return 0; +} diff --git a/gcc/testsuite/gcc.dg/c99-math-long-double-1.c b/gcc/testsuite/gcc.dg/c99-math-long-double-1.c new file mode 100644 index 000000000000..43d158854739 --- /dev/null +++ b/gcc/testsuite/gcc.dg/c99-math-long-double-1.c @@ -0,0 +1,18 @@ +/* { dg-do run { target *-*-solaris2.1[0-9]* } } */ +/* { dg-options "-std=c99 -O" } */ + +#include +#include "c99-math.h" + +int main(void) +{ + long double nan = NAN; + long double inf = INFINITY; + long double huge = HUGE_VALL; + long double norm = __LDBL_MIN__; + long double zero = 0.0l; + + C99_MATH_TESTS (nan, inf, huge, norm, zero) + + return 0; +} diff --git a/gcc/testsuite/gcc.dg/c99-math.h b/gcc/testsuite/gcc.dg/c99-math.h new file mode 100644 index 000000000000..a1e217c8ef3f --- /dev/null +++ b/gcc/testsuite/gcc.dg/c99-math.h @@ -0,0 +1,111 @@ +#include + +extern void abort(void); + +#define C99_MATH_TESTS(nan, inf, huge, norm, zero) \ +{ \ + if (fpclassify (nan) != FP_NAN) \ + abort (); \ + \ + if (fpclassify (inf) != FP_INFINITE) \ + abort (); \ + \ + if (fpclassify (huge) != FP_INFINITE) \ + abort (); \ + \ + if (fpclassify (norm) != FP_NORMAL) \ + abort (); \ + \ + if (fpclassify (zero) != FP_ZERO) \ + abort (); \ + \ + \ + if (!isnan (nan)) \ + abort (); \ + \ + if (isnan (inf)) \ + abort (); \ + \ + if (isnan (huge)) \ + abort (); \ + \ + if (isnan (norm)) \ + abort (); \ + \ + if (isnan (zero)) \ + abort (); \ + \ + \ + if (isinf (nan)) \ + abort (); \ + \ + if (!isinf (inf)) \ + abort (); \ + \ + if (!isinf (huge)) \ + abort (); \ + \ + if (isnan (norm)) \ + abort (); \ + \ + if (isinf (zero)) \ + abort (); \ + \ + \ + if (isfinite (nan)) \ + abort (); \ + \ + if (isfinite (inf)) \ + abort (); \ + \ + if (isfinite (huge)) \ + abort (); \ + \ + if (!isfinite (norm)) \ + abort (); \ + \ + if (!isfinite (zero)) \ + abort (); \ + \ + \ + if (isnormal (nan)) \ + abort (); \ + \ + if (isnormal (inf)) \ + abort (); \ + \ + if (isnormal (huge)) \ + abort (); \ + \ + if (!isnormal (norm)) \ + abort (); \ + \ + if (isnormal (zero)) \ + abort (); \ + \ + \ + if (signbit (norm)) \ + abort (); \ + \ + if (!signbit (-(norm))) \ + abort (); \ + \ + \ + if (!isgreater ((inf), (norm))) \ + abort (); \ + \ + if (!isgreaterequal ((inf), (huge))) \ + abort (); \ + \ + if (!isless ((norm), (inf))) \ + abort (); \ + \ + if (!islessequal ((huge), (inf))) \ + abort (); \ + \ + if (!islessgreater ((inf), (norm))) \ + abort (); \ + \ + if (!isunordered ((nan), (norm))) \ + abort (); \ +} -- 2.47.2