aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.apple/test-ldouble.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.apple/test-ldouble.c')
-rw-r--r--gcc/testsuite/gcc.apple/test-ldouble.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.apple/test-ldouble.c b/gcc/testsuite/gcc.apple/test-ldouble.c
new file mode 100644
index 00000000000..fe85d86e0e1
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/test-ldouble.c
@@ -0,0 +1,24 @@
+/* { dg-do compile } */
+/* { dg-options "-Os" } */
+
+extern void __inline_x80told(long double *x);
+extern double rint( double );
+
+extern unsigned long AECreateDesc(const void * dataPtr);
+
+unsigned long aeCoercePtrToMagnitude()
+{
+ unsigned long err = 0;
+ unsigned long magValue;
+ double doubleValue;
+ long double longDoubleValue;
+
+ __inline_x80told(&longDoubleValue);
+ doubleValue = longDoubleValue;
+ if (doubleValue < 0)
+ err = 2;
+ else
+ magValue = (unsigned long) rint(doubleValue);
+ err = AECreateDesc(&magValue);
+ return err;
+}