summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture/execute/float-floor.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/execute/float-floor.c')
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/float-floor.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/float-floor.c b/gcc/testsuite/gcc.c-torture/execute/float-floor.c
new file mode 100644
index 000000000..fedc1f73f
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/float-floor.c
@@ -0,0 +1,21 @@
+
+#if(__SIZEOF_DOUBLE__==8)
+double d = 1024.0 - 1.0 / 32768.0;
+#else
+double d = 1024.0 - 1.0 / 16384.0;
+#endif
+
+extern double floor(double);
+extern float floorf(float);
+extern void abort();
+
+int main() {
+
+ double df = floor(d);
+ float f1 = (float)floor(d);
+
+ if ((int)df != 1023 || (int)f1 != 1023)
+ abort ();
+
+ return 0;
+}