diff options
author | Eric Botcazou <ebotcazou@libertysurf.fr> | 2005-05-19 09:05:45 +0200 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2005-05-19 07:05:45 +0000 |
commit | 925a448751fd6d7988db51070b585e4fd55766a2 (patch) | |
tree | b868266a6c9589956b7ebb466b05e348d7f83b8b /gcc | |
parent | 7a774cac8861957f4adfe4084e8ab4ee863f15d4 (diff) | |
download | gcc-925a448751fd6d7988db51070b585e4fd55766a2.zip gcc-925a448751fd6d7988db51070b585e4fd55766a2.tar.gz gcc-925a448751fd6d7988db51070b585e4fd55766a2.tar.bz2 |
re PR target/19933 (Problem with define of HUGE_VAL in math_c99.)
fixincludes/
PR target/19933
PR target/21315
* inclhack.def: New fixes solaris_math_[1-9].
* fixincl.x: Regenerate.
* tests/base/iso/math_c99.h: New.
gcc/testsuite/
* gcc.dg/c99-math.h: New
* gcc.dg/c99-math-float-1.c: New test.
* gcc.dg/c99-math-double-1.c: Likewise.
* gcc.dg/c99-math-long-double-1.c: Likewise.
Co-Authored-By: Joseph Myers <joseph@codesourcery.com>
From-SVN: r99953
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/c99-math-double-1.c | 18 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/c99-math-float-1.c | 18 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/c99-math-long-double-1.c | 18 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/c99-math.h | 111 |
5 files changed, 172 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index fbb7b5f..7b1f427 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2005-05-19 Eric Botcazou <ebotcazou@libertysurf.fr> + + * gcc.dg/c99-math.h: New + * gcc.dg/c99-math-float-1.c: New test. + * gcc.dg/c99-math-double-1.c: Likewise. + * gcc.dg/c99-math-long-double-1.c: Likewise. + 2005-05-18 Richard Henderson <rth@redhat.com> * gcc.dg/tree-ssa/20031015-1.c: Expect one V_MUST_DEF. 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 0000000..227b6e2 --- /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 <math.h>
+#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 0000000..9dd4e9a --- /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 <math.h>
+#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 0000000..43d1588 --- /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 <math.h>
+#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 0000000..a1e217c --- /dev/null +++ b/gcc/testsuite/gcc.dg/c99-math.h @@ -0,0 +1,111 @@ +#include <math.h>
+
+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 (); \
+}
|