testsuite: Handle "packed" targets in c-c++-common/auto-init-7.c and -8.c
authorHans-Peter Nilsson <hp@axis.com>
Wed, 15 Feb 2023 19:11:58 +0000 (20:11 +0100)
committerHans-Peter Nilsson <hp@bitrange.com>
Thu, 2 Mar 2023 01:08:41 +0000 (02:08 +0100)
commit854a268dccd7976bfc17584be8f9b2afa6c51fa0
tree8b86a2c98bc086281e9612431a007a3d1d4b1036
parentc88a7c634800bb23ec7303e0c9300ee399a4b457
testsuite: Handle "packed" targets in c-c++-common/auto-init-7.c and -8.c

Looks like there's a failed assumption that
sizeof (union U { char u1[5]; int u2; float u3; }) == 8.
However, for "packed" targets like cris-elf, it's 5.

These two tests have always failed for cris-elf.  I see from
https://gcc.gnu.org/pipermail/gcc-testresults/2023-February/777912.html
that they fail on pru-elf too, but I don't know if the cause
(and/or remedy) is the same.

IMHO this is preferred over the alternative; splitting up
that last line into two lines, like:
/* { dg-final { scan-tree-dump "temp4 = \
 .DEFERRED_INIT \\(8, 2, \&\"temp4\"" "gimple" { target { ! default_packed } } } } */
/* { dg-final { scan-tree-dump "temp4 = \
 .DEFERRED_INIT \\(5, 2, \&\"temp4\"" "gimple" { target default_packed } } } */

gcc/testsuite:
* c-c++-common/auto-init-7.c, c-c++-common/auto-init-8.c: Also
match targets where sizeof (union U) == 5, like "packed" targets.
gcc/testsuite/c-c++-common/auto-init-7.c
gcc/testsuite/c-c++-common/auto-init-8.c