gcc.dg/pr44194-1.c: Skip for mmix.
authorHans-Peter Nilsson <hp@bitrange.com>
Sun, 9 Aug 2020 02:33:34 +0000 (04:33 +0200)
committerHans-Peter Nilsson <hp@bitrange.com>
Sun, 9 Aug 2020 02:33:34 +0000 (04:33 +0200)
The test makes sense only for targets that return the
"struct { int a, b, c; }" in registers (not in memory).

Starting a skip-construct is IMHO better than another iteration of
that obscuring "{ ... && { !  mytarget-*-* } }".  New targets can just
append to the list without additional {}:s.  I chose not to "convert"
any of the previous exclusions, as without targets to test, I'd surely
mess up {}-pairs.

A new effective_target would be even better, but such a
check_effective_target_returns_struct_in_memory (or complementary,
_in_registers) would surely have to be parametrized on the size and
type of the returned blob.

Maybe best to restrict to just x86_64, as seems to have been the
original problem target.

gcc/testsuite:
* gcc.dg/pr44194-1.c: Skip for mmix.

gcc/testsuite/gcc.dg/pr44194-1.c

index 20b74a5..a38270b 100644 (file)
@@ -1,4 +1,5 @@
 /* { dg-do compile { target { { { { { { { { { { i?86-*-* x86_64-*-* } && x32 } || lp64 } && { ! s390*-*-* } } && { ! hppa*64*-*-* } } && { ! alpha*-*-* } } && { { ! powerpc*-*-linux* } || powerpc_elfv2 } } && { ! nvptx-*-* } } } } } } */
+/* { dg-skip-if "returns that struct in memory" { mmix-*-* } } */
 /* { dg-options "-O2 -fdump-rtl-dse1 -fdump-rtl-final" } */
 
 /* Restrict to 64-bit targets since 32-bit targets usually return small