summaryrefslogtreecommitdiff
path: root/usr/src/lib/libast/common/port/astmath.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/lib/libast/common/port/astmath.c')
-rw-r--r--usr/src/lib/libast/common/port/astmath.c62
1 files changed, 62 insertions, 0 deletions
diff --git a/usr/src/lib/libast/common/port/astmath.c b/usr/src/lib/libast/common/port/astmath.c
new file mode 100644
index 0000000000..0722116328
--- /dev/null
+++ b/usr/src/lib/libast/common/port/astmath.c
@@ -0,0 +1,62 @@
+/***********************************************************************
+* *
+* This software is part of the ast package *
+* Copyright (c) 1985-2007 AT&T Knowledge Ventures *
+* and is licensed under the *
+* Common Public License, Version 1.0 *
+* by AT&T Knowledge Ventures *
+* *
+* A copy of the License is available at *
+* http://www.opensource.org/licenses/cpl1.0.txt *
+* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
+* *
+* Information and Software Systems Research *
+* AT&T Research *
+* Florham Park NJ *
+* *
+* Glenn Fowler <gsf@research.att.com> *
+* David Korn <dgk@research.att.com> *
+* Phong Vo <kpv@research.att.com> *
+* *
+***********************************************************************/
+/*
+ * used to test if -last requires -lm
+ *
+ * arch -last -lm
+ * ---- ----- ---
+ * linux.sparc sfdlen,sfputd frexp,ldexp
+ */
+
+#include <math.h>
+
+int
+main()
+{
+#if N & 1
+ long double value = 0;
+#else
+ double value = 0;
+#endif
+#if N < 5
+ int exp = 0;
+#endif
+
+#if N == 1
+ return ldexpl(value, exp) != 0;
+#endif
+#if N == 2
+ return ldexp(value, exp) != 0;
+#endif
+#if N == 3
+ return frexpl(value, &exp) != 0;
+#endif
+#if N == 4
+ return frexp(value, &exp) != 0;
+#endif
+#if N == 5
+ return isnan(value);
+#endif
+#if N == 6
+ return isnan(value);
+#endif
+}