These tests feed NaNs or infinities through floating-point comparisons.
Alpha only generates IEEE-conformant code with -mieee: without it GCC emits
cmpteq rather than cmpteq/su, and an invalid-operation trap on a non-finite
operand is not software-completable, so the program dies with SIGFPE.

Use dg-add-options ieee, which adds -mieee on alpha and sh, rather than
marking the tests as expected failures.  The compiler behaves as documented
and the tests check something meaningful once IEEE semantics are requested.

gcc/testsuite/ChangeLog:

        * g++.dg/opt/pr94589-6.C: Add dg-add-options ieee.
        * g++.dg/torture/pr116120-2.C: Likewise.
        * gcc.c-torture/execute/20190901-1.c: Likewise.
        * gcc.dg/pr108447.c: Likewise.
        * gcc.dg/pr94589-6.c: Likewise.
        * gcc.dg/torture/pr126464.c: Likewise.
        * gcc.dg/torture/pr126576.c: Likewise.
---
 gcc/testsuite/g++.dg/opt/pr94589-6.C             | 1 +
 gcc/testsuite/g++.dg/torture/pr116120-2.C        | 1 +
 gcc/testsuite/gcc.c-torture/execute/20190901-1.c | 1 +
 gcc/testsuite/gcc.dg/pr108447.c                  | 1 +
 gcc/testsuite/gcc.dg/pr94589-6.c                 | 1 +
 gcc/testsuite/gcc.dg/torture/pr126464.c          | 1 +
 gcc/testsuite/gcc.dg/torture/pr126576.c          | 1 +
 7 files changed, 7 insertions(+)

diff --git ./gcc/testsuite/g++.dg/opt/pr94589-6.C 
./gcc/testsuite/g++.dg/opt/pr94589-6.C
index c5036c6f56a..49d205b057a 100644
--- ./gcc/testsuite/g++.dg/opt/pr94589-6.C
+++ ./gcc/testsuite/g++.dg/opt/pr94589-6.C
@@ -1,6 +1,7 @@
 // { dg-do run { target c++20 } }
 // { dg-require-effective-target inf }
 // { dg-options "-O2 -g" }
+// { dg-add-options ieee }
 
 #include "pr94589-5.C"
 
diff --git ./gcc/testsuite/g++.dg/torture/pr116120-2.C 
./gcc/testsuite/g++.dg/torture/pr116120-2.C
index e9fee17a262..8715582578d 100644
--- ./gcc/testsuite/g++.dg/torture/pr116120-2.C
+++ ./gcc/testsuite/g++.dg/torture/pr116120-2.C
@@ -1,4 +1,5 @@
 // { dg-do run }
+// { dg-add-options ieee }
 // PR tree-optimization/116120
 
 // The optimization for `(a ? x : y) == (b ? x : y)`
diff --git ./gcc/testsuite/gcc.c-torture/execute/20190901-1.c 
./gcc/testsuite/gcc.c-torture/execute/20190901-1.c
index 2345e51896f..08869092c78 100644
--- ./gcc/testsuite/gcc.c-torture/execute/20190901-1.c
+++ ./gcc/testsuite/gcc.c-torture/execute/20190901-1.c
@@ -1,6 +1,7 @@
 /* PR target/91472 */
 /* Reported by John Paul Adrian Glaubitz <[email protected]> */
 /* { dg-require-effective-target double64plus } */
+/* { dg-add-options ieee } */
 
 #if __SIZEOF_INT__ >= 4
 typedef unsigned int gmp_uint_least32_t;
diff --git ./gcc/testsuite/gcc.dg/pr108447.c ./gcc/testsuite/gcc.dg/pr108447.c
index cfbaba6d0aa..e7e34ca24cf 100644
--- ./gcc/testsuite/gcc.dg/pr108447.c
+++ ./gcc/testsuite/gcc.dg/pr108447.c
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2" } */
+/* { dg-add-options ieee } */
 
 __attribute__((noipa)) int
 foo (float x, float y)
diff --git ./gcc/testsuite/gcc.dg/pr94589-6.c ./gcc/testsuite/gcc.dg/pr94589-6.c
index 3131ab4cfae..5828fce7f41 100644
--- ./gcc/testsuite/gcc.dg/pr94589-6.c
+++ ./gcc/testsuite/gcc.dg/pr94589-6.c
@@ -1,5 +1,6 @@
 /* { dg-do run { target inf } } */
 /* { dg-options "-O2 -g" } */
+/* { dg-add-options ieee } */
 
 #include "pr94589-5.c"
 
diff --git ./gcc/testsuite/gcc.dg/torture/pr126464.c 
./gcc/testsuite/gcc.dg/torture/pr126464.c
index c0dced1eedc..f433caefa8e 100644
--- ./gcc/testsuite/gcc.dg/torture/pr126464.c
+++ ./gcc/testsuite/gcc.dg/torture/pr126464.c
@@ -1,5 +1,6 @@
 /* PR tree-optimization/126464 */
 /* { dg-do run } */
+/* { dg-add-options ieee } */
 
 #if __DBL_MANT_DIG__ == 53 && __DBL_MAX_10_EXP__ == 308 \
     && __DBL_HAS_INFINITY__ && __FLT_EVAL_METHOD__ == 0
diff --git ./gcc/testsuite/gcc.dg/torture/pr126576.c 
./gcc/testsuite/gcc.dg/torture/pr126576.c
index c94c7437035..a961f77552b 100644
--- ./gcc/testsuite/gcc.dg/torture/pr126576.c
+++ ./gcc/testsuite/gcc.dg/torture/pr126576.c
@@ -1,5 +1,6 @@
 /* PR tree-optimization/126576 */
 /* { dg-do run } */
+/* { dg-add-options ieee } */
 
 #if __DBL_MANT_DIG__ == 53 && __DBL_MAX_10_EXP__ == 308 \
     && __DBL_HAS_INFINITY__ && __FLT_EVAL_METHOD__ == 0
-- 
2.54.0

Reply via email to