gcc/testsuite/s390: Add test cases for float_t
authorMarius Hillenbrand <mhillen@linux.ibm.com>
Tue, 1 Dec 2020 10:05:42 +0000 (11:05 +0100)
committerAndreas Krebbel <krebbel@linux.ibm.com>
Tue, 1 Dec 2020 10:29:09 +0000 (11:29 +0100)
Add two test cases that check for acceptable combinations of float_t and
FLT_EVAL_METHOD on s390x.

Tested against an as-is glibc and one modified so that it derives
float_t from FLT_EVAL_METHOD.

gcc/testsuite/ChangeLog:

2020-12-01  Marius Hillenbrand  <mhillen@linux.ibm.com>

* gcc.target/s390/float_t-1.c: New test.
* gcc.target/s390/float_t-2.c: New test.

gcc/testsuite/gcc.target/s390/float_t-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/s390/float_t-2.c [new file with mode: 0644]

diff --git a/gcc/testsuite/gcc.target/s390/float_t-1.c b/gcc/testsuite/gcc.target/s390/float_t-1.c
new file mode 100644 (file)
index 0000000..3455694
--- /dev/null
@@ -0,0 +1,15 @@
+/* { dg-do run } */
+/* { dg-options "-std=c99" } */
+#include <math.h>
+#include <stdlib.h>
+
+int main()
+{
+  /* In standard-compliant mode, the size of float_t and FLT_EVAL_METHOD must
+     match. */
+  if (sizeof(float_t) == sizeof(double) && __FLT_EVAL_METHOD__ != 1)
+    abort();
+  if (sizeof(float_t) == sizeof(float) && __FLT_EVAL_METHOD__ != 0)
+    abort();
+  return 0;
+}
diff --git a/gcc/testsuite/gcc.target/s390/float_t-2.c b/gcc/testsuite/gcc.target/s390/float_t-2.c
new file mode 100644 (file)
index 0000000..ebeda28
--- /dev/null
@@ -0,0 +1,13 @@
+/* { dg-do run } */
+/* { dg-options "-std=gnu99" } */
+#include <math.h>
+#include <stdlib.h>
+
+int main()
+{
+  /* In gnuXY mode, the size of float_t and FLT_EVAL_METHOD must
+     match, with the historic exception of permitting double and 0. */
+  if (sizeof(float_t) == sizeof(float) && __FLT_EVAL_METHOD__ == 1)
+    abort();
+  return 0;
+}