From: Alexandre Oliva Date: Mon, 29 Jan 2024 18:08:32 +0000 (-0300) Subject: testsuite: no dfp run without dfprt X-Git-Tag: basepoints/gcc-15~1634 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2ddce884b0d4895758d988498739d6cc2d4e1ffd;p=thirdparty%2Fgcc.git testsuite: no dfp run without dfprt newlib-src/libc/include/sys/fenv.h doesn't define the FE_* macros that libgcc expects to enable decimal float support. Only after newlib is configured and built does an overriding header that defines those macros become available in objdir//newlib/targ-include/, but by then, libgcc has already been built without dfp and libbid. This has exposed a number of tests that attempt to link dfp programs without requiring a dfprt effective target. dfp.exp already skips if dfp support is missing altogether, and sets the default to compile rather than run if dfp support is present in the compiler but missing in the runtime libraries. However, some of the dfp tests override the default without requiring dfprt. Drop the overriders where reasonable, and add the explicit requirement elsewhere. for gcc/testsuite/ChangeLog * c-c++-common/dfp/pr36800.c: Drop dg-do overrider. * c-c++-common/dfp/pr39034.c: Likewise. * c-c++-common/dfp/pr39035.c: Likewise. * gcc.dg/dfp/bid-non-canonical-d32-1.c: Likewise. * gcc.dg/dfp/bid-non-canonical-d32-2.c: Likewise. * gcc.dg/dfp/bid-non-canonical-d64-1.c: Likewise. * gcc.dg/dfp/bid-non-canonical-d64-2.c: Likewise. * gcc.dg/dfp/builtin-snan-1.c: Likewise. * gcc.dg/dfp/builtin-tgmath-dfp.c: Likewise. * gcc.dg/dfp/c23-float-dfp-4.c: Likewise. * gcc.dg/dfp/c23-float-dfp-5.c: Likewise. * gcc.dg/dfp/c23-float-dfp-6.c: Likewise. * gcc.dg/dfp/c23-float-dfp-7.c: Likewise. * gcc.dg/dfp/pr108068.c: Likewise. * gcc.dg/dfp/pr97439.c: Likewise. * g++.dg/compat/decimal/pass-1_main.C: Require dfprt. * g++.dg/compat/decimal/pass-2_main.C: Likewise. * g++.dg/compat/decimal/pass-3_main.C: Likewise. * g++.dg/compat/decimal/pass-4_main.C: Likewise. * g++.dg/compat/decimal/pass-5_main.C: Likewise. * g++.dg/compat/decimal/pass-6_main.C: Likewise. * g++.dg/compat/decimal/return-1_main.C: Likewise. * g++.dg/compat/decimal/return-2_main.C: Likewise. * g++.dg/compat/decimal/return-3_main.C: Likewise. * g++.dg/compat/decimal/return-4_main.C: Likewise. * g++.dg/compat/decimal/return-5_main.C: Likewise. * g++.dg/compat/decimal/return-6_main.C: Likewise. * g++.dg/eh/dfp-1.C: Likewise. * g++.dg/eh/dfp-2.C: Likewise. * g++.dg/eh/dfp-saves-aarch64.C: Likewise. * gcc.c-torture/execute/pr80692.c: Likewise. * gcc.dg/dfp/bid-non-canonical-d128-1.c: Likewise. * gcc.dg/dfp/bid-non-canonical-d128-2.c: Likewise. * gcc.dg/dfp/bid-non-canonical-d128-3.c: Likewise. * gcc.dg/dfp/bid-non-canonical-d128-4.c: Likewise. --- diff --git a/gcc/testsuite/c-c++-common/dfp/pr36800.c b/gcc/testsuite/c-c++-common/dfp/pr36800.c index 76ff28c98155..3d3465a465e7 100644 --- a/gcc/testsuite/c-c++-common/dfp/pr36800.c +++ b/gcc/testsuite/c-c++-common/dfp/pr36800.c @@ -1,5 +1,3 @@ -/* { dg-do run } */ - #include #include "dfp-dbg.h" diff --git a/gcc/testsuite/c-c++-common/dfp/pr39034.c b/gcc/testsuite/c-c++-common/dfp/pr39034.c index 2a7eedbdbe20..d05ccc2b30ca 100644 --- a/gcc/testsuite/c-c++-common/dfp/pr39034.c +++ b/gcc/testsuite/c-c++-common/dfp/pr39034.c @@ -1,4 +1,3 @@ -/* { dg-do run } */ /* { dg-options "-O" } */ /* DFP TR 24732 == WG14 / N1176, N1312 */ diff --git a/gcc/testsuite/c-c++-common/dfp/pr39035.c b/gcc/testsuite/c-c++-common/dfp/pr39035.c index 2c9e8b386ed4..c55698545844 100644 --- a/gcc/testsuite/c-c++-common/dfp/pr39035.c +++ b/gcc/testsuite/c-c++-common/dfp/pr39035.c @@ -1,4 +1,3 @@ -/* { dg-do run } */ /* { dg-options "-O" } */ /* DFP TR 24732 == WG14 / N1176, N1312 */ diff --git a/gcc/testsuite/g++.dg/compat/decimal/pass-1_main.C b/gcc/testsuite/g++.dg/compat/decimal/pass-1_main.C index 963dc3bbfabf..cb48c491b27e 100644 --- a/gcc/testsuite/g++.dg/compat/decimal/pass-1_main.C +++ b/gcc/testsuite/g++.dg/compat/decimal/pass-1_main.C @@ -1,4 +1,5 @@ /* { dg-require-effective-target dfp } */ +/* { dg-require-effective-target dfprt } */ /* Test passing decimal scalars by value. */ diff --git a/gcc/testsuite/g++.dg/compat/decimal/pass-2_main.C b/gcc/testsuite/g++.dg/compat/decimal/pass-2_main.C index 533e4b276dc7..5f2a7212c802 100644 --- a/gcc/testsuite/g++.dg/compat/decimal/pass-2_main.C +++ b/gcc/testsuite/g++.dg/compat/decimal/pass-2_main.C @@ -1,4 +1,5 @@ /* { dg-require-effective-target dfp } */ +/* { dg-require-effective-target dfprt } */ /* Test passing decimal classes by value. */ diff --git a/gcc/testsuite/g++.dg/compat/decimal/pass-3_main.C b/gcc/testsuite/g++.dg/compat/decimal/pass-3_main.C index de09992c2246..f095173b23af 100644 --- a/gcc/testsuite/g++.dg/compat/decimal/pass-3_main.C +++ b/gcc/testsuite/g++.dg/compat/decimal/pass-3_main.C @@ -1,4 +1,5 @@ /* { dg-require-effective-target dfp } */ +/* { dg-require-effective-target dfprt } */ /* Test passing decimal scalars and classes by value. */ diff --git a/gcc/testsuite/g++.dg/compat/decimal/pass-4_main.C b/gcc/testsuite/g++.dg/compat/decimal/pass-4_main.C index d5a0a47d478b..379f38a4061d 100644 --- a/gcc/testsuite/g++.dg/compat/decimal/pass-4_main.C +++ b/gcc/testsuite/g++.dg/compat/decimal/pass-4_main.C @@ -1,4 +1,5 @@ /* { dg-require-effective-target dfp } */ +/* { dg-require-effective-target dfprt } */ /* Test passing decimal classes and scalars by value. */ diff --git a/gcc/testsuite/g++.dg/compat/decimal/pass-5_main.C b/gcc/testsuite/g++.dg/compat/decimal/pass-5_main.C index 9b25a49c72e8..436d80d05680 100644 --- a/gcc/testsuite/g++.dg/compat/decimal/pass-5_main.C +++ b/gcc/testsuite/g++.dg/compat/decimal/pass-5_main.C @@ -1,4 +1,5 @@ /* { dg-require-effective-target dfp } */ +/* { dg-require-effective-target dfprt } */ /* Test passing decimal scalars and typedef'd classes by value. */ diff --git a/gcc/testsuite/g++.dg/compat/decimal/pass-6_main.C b/gcc/testsuite/g++.dg/compat/decimal/pass-6_main.C index 1b686a21dd02..444643cfd05d 100644 --- a/gcc/testsuite/g++.dg/compat/decimal/pass-6_main.C +++ b/gcc/testsuite/g++.dg/compat/decimal/pass-6_main.C @@ -1,4 +1,5 @@ /* { dg-require-effective-target dfp } */ +/* { dg-require-effective-target dfprt } */ /* Test passing typedef'd decimal classes and scalars by value. */ diff --git a/gcc/testsuite/g++.dg/compat/decimal/return-1_main.C b/gcc/testsuite/g++.dg/compat/decimal/return-1_main.C index c663bb01cf3c..fa8dbefbe9ed 100644 --- a/gcc/testsuite/g++.dg/compat/decimal/return-1_main.C +++ b/gcc/testsuite/g++.dg/compat/decimal/return-1_main.C @@ -1,4 +1,5 @@ /* { dg-require-effective-target dfp } */ +/* { dg-require-effective-target dfprt } */ /* Test function return values for decimal float scalars. */ diff --git a/gcc/testsuite/g++.dg/compat/decimal/return-2_main.C b/gcc/testsuite/g++.dg/compat/decimal/return-2_main.C index afa27f269dfb..ab7fb5d7fa55 100644 --- a/gcc/testsuite/g++.dg/compat/decimal/return-2_main.C +++ b/gcc/testsuite/g++.dg/compat/decimal/return-2_main.C @@ -1,4 +1,5 @@ /* { dg-require-effective-target dfp } */ +/* { dg-require-effective-target dfprt } */ /* Test function return values for decimal classes. */ diff --git a/gcc/testsuite/g++.dg/compat/decimal/return-3_main.C b/gcc/testsuite/g++.dg/compat/decimal/return-3_main.C index 468f3fc0c347..8ee3d31fb243 100644 --- a/gcc/testsuite/g++.dg/compat/decimal/return-3_main.C +++ b/gcc/testsuite/g++.dg/compat/decimal/return-3_main.C @@ -1,4 +1,5 @@ /* { dg-require-effective-target dfp } */ +/* { dg-require-effective-target dfprt } */ /* Test function return values for decimal float scalars and classes. */ diff --git a/gcc/testsuite/g++.dg/compat/decimal/return-4_main.C b/gcc/testsuite/g++.dg/compat/decimal/return-4_main.C index 365d8becd598..a0fe5c72aeb6 100644 --- a/gcc/testsuite/g++.dg/compat/decimal/return-4_main.C +++ b/gcc/testsuite/g++.dg/compat/decimal/return-4_main.C @@ -1,4 +1,5 @@ /* { dg-require-effective-target dfp } */ +/* { dg-require-effective-target dfprt } */ /* Test function return values for decimal float classes and scalars. */ diff --git a/gcc/testsuite/g++.dg/compat/decimal/return-5_main.C b/gcc/testsuite/g++.dg/compat/decimal/return-5_main.C index 2c334832797f..bea5d9d591c1 100644 --- a/gcc/testsuite/g++.dg/compat/decimal/return-5_main.C +++ b/gcc/testsuite/g++.dg/compat/decimal/return-5_main.C @@ -1,4 +1,5 @@ /* { dg-require-effective-target dfp } */ +/* { dg-require-effective-target dfprt } */ /* Test function return values for decimal float scalars and typedef'd classes. */ diff --git a/gcc/testsuite/g++.dg/compat/decimal/return-6_main.C b/gcc/testsuite/g++.dg/compat/decimal/return-6_main.C index 94526bdcb815..4460475424e2 100644 --- a/gcc/testsuite/g++.dg/compat/decimal/return-6_main.C +++ b/gcc/testsuite/g++.dg/compat/decimal/return-6_main.C @@ -1,4 +1,5 @@ /* { dg-require-effective-target dfp } */ +/* { dg-require-effective-target dfprt } */ /* Test function return values for typedef'd decimal float classes and scalars. */ diff --git a/gcc/testsuite/g++.dg/eh/dfp-1.C b/gcc/testsuite/g++.dg/eh/dfp-1.C index b0da13a4cc57..5efd92ccc788 100644 --- a/gcc/testsuite/g++.dg/eh/dfp-1.C +++ b/gcc/testsuite/g++.dg/eh/dfp-1.C @@ -1,5 +1,6 @@ // { dg-do run } // { dg-require-effective-target dfp } +/* { dg-require-effective-target dfprt } */ extern "C" void abort (); diff --git a/gcc/testsuite/g++.dg/eh/dfp-2.C b/gcc/testsuite/g++.dg/eh/dfp-2.C index aff0e03d1d91..3c65b031b9c9 100644 --- a/gcc/testsuite/g++.dg/eh/dfp-2.C +++ b/gcc/testsuite/g++.dg/eh/dfp-2.C @@ -1,5 +1,6 @@ // { dg-do run } // { dg-require-effective-target dfp } +/* { dg-require-effective-target dfprt } */ extern "C" void abort (); diff --git a/gcc/testsuite/g++.dg/eh/dfp-saves-aarch64.C b/gcc/testsuite/g++.dg/eh/dfp-saves-aarch64.C index 062034105004..f1fa7c44a31c 100644 --- a/gcc/testsuite/g++.dg/eh/dfp-saves-aarch64.C +++ b/gcc/testsuite/g++.dg/eh/dfp-saves-aarch64.C @@ -1,5 +1,6 @@ // { dg-do run { target aarch64*-*-* } } // { dg-require-effective-target dfp } +/* { dg-require-effective-target dfprt } */ /* Test unwinding of AArch64 register saves. */ /* We cannot use #include because it defines diff --git a/gcc/testsuite/gcc.c-torture/execute/pr80692.c b/gcc/testsuite/gcc.c-torture/execute/pr80692.c index e653c71c9130..0978703bec2f 100644 --- a/gcc/testsuite/gcc.c-torture/execute/pr80692.c +++ b/gcc/testsuite/gcc.c-torture/execute/pr80692.c @@ -1,4 +1,5 @@ /* { dg-require-effective-target dfp } */ +/* { dg-require-effective-target dfprt } */ int main () { _Decimal64 d64 = -0.DD; diff --git a/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-1.c b/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-1.c index f2f6d47b038f..641d418ba5f1 100644 --- a/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-1.c +++ b/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-1.c @@ -1,5 +1,5 @@ /* Test non-canonical BID significands: _Decimal128. Bug 91226. */ -/* { dg-do run { target lp64 } } */ +/* { dg-do run { target { lp64 && dfprt } } } */ /* { dg-require-effective-target dfp_bid } */ /* { dg-options "-std=gnu23 -O2" } */ diff --git a/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-2.c b/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-2.c index ba4b9cd96946..d2eedce86e08 100644 --- a/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-2.c +++ b/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-2.c @@ -1,6 +1,6 @@ /* Test non-canonical BID significands: _Decimal128, case where combination field starts 11. Bug 91226. */ -/* { dg-do run { target lp64 } } */ +/* { dg-do run { target { lp64 && dfprt } } } */ /* { dg-require-effective-target dfp_bid } */ /* { dg-options "-std=gnu23 -O2" } */ diff --git a/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-3.c b/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-3.c index a16ecf8c624a..fce415fcec50 100644 --- a/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-3.c +++ b/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-3.c @@ -1,5 +1,5 @@ /* Test non-canonical BID significands: _Decimal128. Bug 91226. */ -/* { dg-do run { target lp64 } } */ +/* { dg-do run { target { lp64 && dfprt } } } */ /* { dg-require-effective-target dfp_bid } */ /* { dg-options "-std=gnu23 -O0" } */ diff --git a/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-4.c b/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-4.c index 1504e07f7140..05ef43d97b5d 100644 --- a/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-4.c +++ b/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-4.c @@ -1,6 +1,6 @@ /* Test non-canonical BID significands: _Decimal128, case where combination field starts 11. Bug 91226. */ -/* { dg-do run { target lp64 } } */ +/* { dg-do run { target { lp64 && dfprt } } } */ /* { dg-require-effective-target dfp_bid } */ /* { dg-options "-std=gnu23 -O0" } */ diff --git a/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d32-1.c b/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d32-1.c index 593f06b61dd7..b5f45b374b73 100644 --- a/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d32-1.c +++ b/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d32-1.c @@ -1,5 +1,4 @@ /* Test non-canonical BID significands: _Decimal32. Bug 91226. */ -/* { dg-do run } */ /* { dg-require-effective-target dfp_bid } */ /* { dg-options "-std=gnu23 -O2" } */ diff --git a/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d32-2.c b/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d32-2.c index ae2c9268ac33..e2edb57d4a97 100644 --- a/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d32-2.c +++ b/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d32-2.c @@ -1,5 +1,4 @@ /* Test non-canonical BID significands: _Decimal32. Bug 91226. */ -/* { dg-do run } */ /* { dg-require-effective-target dfp_bid } */ /* { dg-options "-std=gnu23 -O0" } */ diff --git a/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d64-1.c b/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d64-1.c index bb0cb1a60501..d48d83079dc4 100644 --- a/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d64-1.c +++ b/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d64-1.c @@ -1,5 +1,4 @@ /* Test non-canonical BID significands: _Decimal64. Bug 91226. */ -/* { dg-do run } */ /* { dg-require-effective-target dfp_bid } */ /* { dg-options "-std=gnu23 -O2" } */ diff --git a/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d64-2.c b/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d64-2.c index 1375ab56e586..feda104cc240 100644 --- a/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d64-2.c +++ b/gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d64-2.c @@ -1,5 +1,4 @@ /* Test non-canonical BID significands: _Decimal64. Bug 91226. */ -/* { dg-do run } */ /* { dg-require-effective-target dfp_bid } */ /* { dg-options "-std=gnu23 -O0" } */ diff --git a/gcc/testsuite/gcc.dg/dfp/builtin-snan-1.c b/gcc/testsuite/gcc.dg/dfp/builtin-snan-1.c index 49a32c875463..759e9e8a74b9 100644 --- a/gcc/testsuite/gcc.dg/dfp/builtin-snan-1.c +++ b/gcc/testsuite/gcc.dg/dfp/builtin-snan-1.c @@ -1,6 +1,5 @@ /* Test __builtin_nansd* functions. Test not requiring runtime exceptions support. */ -/* { dg-do run } */ /* { dg-options "" } */ volatile _Decimal32 d32 = __builtin_nansd32 (""); diff --git a/gcc/testsuite/gcc.dg/dfp/builtin-tgmath-dfp.c b/gcc/testsuite/gcc.dg/dfp/builtin-tgmath-dfp.c index 256a71e68be4..17e424d5bf97 100644 --- a/gcc/testsuite/gcc.dg/dfp/builtin-tgmath-dfp.c +++ b/gcc/testsuite/gcc.dg/dfp/builtin-tgmath-dfp.c @@ -1,5 +1,4 @@ /* Test __builtin_tgmath: valid uses, decimal floating-point types. */ -/* { dg-do run } */ /* { dg-options "" } */ extern void abort (void); diff --git a/gcc/testsuite/gcc.dg/dfp/c23-float-dfp-4.c b/gcc/testsuite/gcc.dg/dfp/c23-float-dfp-4.c index d7d04bd12d94..fbd52ce3e7bf 100644 --- a/gcc/testsuite/gcc.dg/dfp/c23-float-dfp-4.c +++ b/gcc/testsuite/gcc.dg/dfp/c23-float-dfp-4.c @@ -1,5 +1,4 @@ /* Test DEC_INFINITY defined in with DFP support. */ -/* { dg-do run } */ /* { dg-options "-std=c23" } */ #include diff --git a/gcc/testsuite/gcc.dg/dfp/c23-float-dfp-5.c b/gcc/testsuite/gcc.dg/dfp/c23-float-dfp-5.c index 19a5fbbba8a0..926649cbf17f 100644 --- a/gcc/testsuite/gcc.dg/dfp/c23-float-dfp-5.c +++ b/gcc/testsuite/gcc.dg/dfp/c23-float-dfp-5.c @@ -1,5 +1,4 @@ /* Test DEC_NAN defined in with DFP support. */ -/* { dg-do run } */ /* { dg-options "-std=c23" } */ #include diff --git a/gcc/testsuite/gcc.dg/dfp/c23-float-dfp-6.c b/gcc/testsuite/gcc.dg/dfp/c23-float-dfp-6.c index d00c3905a7b2..d6b93a259ddb 100644 --- a/gcc/testsuite/gcc.dg/dfp/c23-float-dfp-6.c +++ b/gcc/testsuite/gcc.dg/dfp/c23-float-dfp-6.c @@ -2,7 +2,6 @@ quiet not signaling. (This would only actually fail for a signaling NaN in the hardware DFP case, because the software DFP support in libgcc does not integrate with hardware exceptions.) */ -/* { dg-do run } */ /* { dg-require-effective-target fenv_exceptions } */ /* { dg-options "-std=c23" } */ diff --git a/gcc/testsuite/gcc.dg/dfp/c23-float-dfp-7.c b/gcc/testsuite/gcc.dg/dfp/c23-float-dfp-7.c index bc1cd4b58a3f..d08d5460c313 100644 --- a/gcc/testsuite/gcc.dg/dfp/c23-float-dfp-7.c +++ b/gcc/testsuite/gcc.dg/dfp/c23-float-dfp-7.c @@ -1,5 +1,4 @@ /* Test DEC*_SNAN macros defined in with DFP support. */ -/* { dg-do run } */ /* { dg-options "-std=c23" } */ #include diff --git a/gcc/testsuite/gcc.dg/dfp/pr108068.c b/gcc/testsuite/gcc.dg/dfp/pr108068.c index 6cbb0fbe6026..a8798e900202 100644 --- a/gcc/testsuite/gcc.dg/dfp/pr108068.c +++ b/gcc/testsuite/gcc.dg/dfp/pr108068.c @@ -1,5 +1,4 @@ /* PR tree-optimization/108068 */ -/* { dg-do run } */ /* { dg-options "-O2" } */ int diff --git a/gcc/testsuite/gcc.dg/dfp/pr97439.c b/gcc/testsuite/gcc.dg/dfp/pr97439.c index 7fcf834043cb..c651ec22e431 100644 --- a/gcc/testsuite/gcc.dg/dfp/pr97439.c +++ b/gcc/testsuite/gcc.dg/dfp/pr97439.c @@ -1,4 +1,3 @@ -// { dg-do run } // { dg-options "-O1" } static int