--- /dev/null
+/* { 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
--- /dev/null
+/* { 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
--- /dev/null
+/* { 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
--- /dev/null
+#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