]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
This commit was manufactured by cvs2svn to create branch
authorNo Author <no-author@gcc.gnu.org>
Sun, 29 May 2005 20:45:43 +0000 (20:45 +0000)
committerNo Author <no-author@gcc.gnu.org>
Sun, 29 May 2005 20:45:43 +0000 (20:45 +0000)
'gcc-3_4-branch'.

From-SVN: r100332

gcc/testsuite/gcc.dg/c99-math-double-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/c99-math-float-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/c99-math-long-double-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/c99-math.h [new file with mode: 0644]

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 (file)
index 0000000..227b6e2
--- /dev/null
@@ -0,0 +1,18 @@
+/* { dg-do run { target *-*-solaris2.1[0-9]* } } */\r
+/* { dg-options "-std=c99 -O" } */\r
+\r
+#include <math.h>\r
+#include "c99-math.h"\r
+\r
+int main(void)\r
+{\r
+  double nan = NAN;\r
+  double inf = INFINITY;\r
+  double huge = HUGE_VAL;\r
+  double norm = __DBL_MIN__;\r
+  double zero = 0.0;\r
+\r
+  C99_MATH_TESTS (nan, inf, huge, norm, zero)\r
+\r
+  return 0;\r
+}\r
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 (file)
index 0000000..9dd4e9a
--- /dev/null
@@ -0,0 +1,18 @@
+/* { dg-do run { target *-*-solaris2.1[0-9]* } } */\r
+/* { dg-options "-std=c99 -O" } */\r
+\r
+#include <math.h>\r
+#include "c99-math.h"\r
+\r
+int main(void)\r
+{\r
+  float nan = NAN;\r
+  float inf = INFINITY;\r
+  float huge = HUGE_VALF;\r
+  float norm = __FLT_MIN__;\r
+  float zero = 0.0f;\r
+\r
+  C99_MATH_TESTS (nan, inf, huge, norm, zero)\r
+\r
+  return 0;\r
+}\r
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 (file)
index 0000000..43d1588
--- /dev/null
@@ -0,0 +1,18 @@
+/* { dg-do run { target *-*-solaris2.1[0-9]* } } */\r
+/* { dg-options "-std=c99 -O" } */\r
+\r
+#include <math.h>\r
+#include "c99-math.h"\r
+\r
+int main(void)\r
+{\r
+  long double nan = NAN;\r
+  long double inf = INFINITY;\r
+  long double huge = HUGE_VALL;\r
+  long double norm = __LDBL_MIN__;\r
+  long double zero = 0.0l;\r
+\r
+  C99_MATH_TESTS (nan, inf, huge, norm, zero)\r
+\r
+  return 0;\r
+}\r
diff --git a/gcc/testsuite/gcc.dg/c99-math.h b/gcc/testsuite/gcc.dg/c99-math.h
new file mode 100644 (file)
index 0000000..a1e217c
--- /dev/null
@@ -0,0 +1,111 @@
+#include <math.h>\r
+\r
+extern void abort(void);\r
+\r
+#define C99_MATH_TESTS(nan, inf, huge, norm, zero)     \\r
+{                                                      \\r
+  if (fpclassify (nan) != FP_NAN)                      \\r
+    abort ();                                          \\r
+                                                       \\r
+  if (fpclassify (inf) != FP_INFINITE)                 \\r
+    abort ();                                          \\r
+                                                       \\r
+  if (fpclassify (huge) != FP_INFINITE)                        \\r
+    abort ();                                          \\r
+                                                       \\r
+  if (fpclassify (norm) != FP_NORMAL)                  \\r
+    abort ();                                          \\r
+                                                       \\r
+  if (fpclassify (zero) != FP_ZERO)                    \\r
+    abort ();                                          \\r
+                                                       \\r
+                                                       \\r
+  if (!isnan (nan))                                    \\r
+    abort ();                                          \\r
+                                                       \\r
+  if (isnan (inf))                                     \\r
+    abort ();                                          \\r
+                                                       \\r
+  if (isnan (huge))                                    \\r
+    abort ();                                          \\r
+                                                       \\r
+  if (isnan (norm))                                    \\r
+    abort ();                                          \\r
+                                                       \\r
+  if (isnan (zero))                                    \\r
+    abort ();                                          \\r
+                                                       \\r
+                                                       \\r
+  if (isinf (nan))                                     \\r
+    abort ();                                          \\r
+                                                       \\r
+  if (!isinf (inf))                                    \\r
+    abort ();                                          \\r
+                                                       \\r
+  if (!isinf (huge))                                   \\r
+    abort ();                                          \\r
+                                                       \\r
+  if (isnan (norm))                                    \\r
+    abort ();                                          \\r
+                                                       \\r
+  if (isinf (zero))                                    \\r
+    abort ();                                          \\r
+                                                       \\r
+                                                       \\r
+  if (isfinite (nan))                                  \\r
+    abort ();                                          \\r
+                                                       \\r
+  if (isfinite (inf))                                  \\r
+    abort ();                                          \\r
+                                                       \\r
+  if (isfinite (huge))                                 \\r
+    abort ();                                          \\r
+                                                       \\r
+  if (!isfinite (norm))                                        \\r
+    abort ();                                          \\r
+                                                       \\r
+  if (!isfinite (zero))                                        \\r
+    abort ();                                          \\r
+                                                       \\r
+                                                       \\r
+  if (isnormal (nan))                                  \\r
+    abort ();                                          \\r
+                                                       \\r
+  if (isnormal (inf))                                  \\r
+    abort ();                                          \\r
+                                                       \\r
+  if (isnormal (huge))                                 \\r
+    abort ();                                          \\r
+                                                       \\r
+  if (!isnormal (norm))                                        \\r
+    abort ();                                          \\r
+                                                       \\r
+  if (isnormal (zero))                                 \\r
+    abort ();                                          \\r
+                                                       \\r
+                                                       \\r
+  if (signbit (norm))                                  \\r
+    abort ();                                          \\r
+                                                       \\r
+  if (!signbit (-(norm)))                              \\r
+    abort ();                                          \\r
+                                                       \\r
+                                                       \\r
+  if (!isgreater ((inf), (norm)))                      \\r
+    abort ();                                          \\r
+                                                       \\r
+  if (!isgreaterequal ((inf), (huge)))                 \\r
+    abort ();                                          \\r
+                                                       \\r
+  if (!isless ((norm), (inf)))                         \\r
+    abort ();                                          \\r
+                                                       \\r
+  if (!islessequal ((huge), (inf)))                    \\r
+    abort ();                                          \\r
+                                                       \\r
+  if (!islessgreater ((inf), (norm)))                  \\r
+    abort ();                                          \\r
+                                                       \\r
+  if (!isunordered ((nan), (norm)))                    \\r
+    abort ();                                          \\r
+}\r