https://gcc.gnu.org/g:b13e34699c7d27e561fcfe1b66ced1e50e69976f

commit r15-2904-gb13e34699c7d27e561fcfe1b66ced1e50e69976f
Author: Dimitar Dimitrov <dimi...@dinux.eu>
Date:   Mon Aug 5 19:00:28 2024 +0300

    testsuite: Fix struct size check [PR116155]
    
    The size of "struct only_fam_2" is dependent on the alignment of the
    flexible array member "b", and not on the type of the preceding
    bit-fields.  For most targets the two are equal.  But on default_packed
    targets like pru-unknown-elf, the alignment of int is not equal to the
    size of int, so the test failed.
    
    Patch was suggested by Qing Zhao.  Tested on pru-unknown-elf and
    x86_64-pc-linux-gnu.
    
            PR testsuite/116155
    
    gcc/testsuite/ChangeLog:
    
            * c-c++-common/fam-in-union-alone-in-struct-1.c: Adjust
            check to account for default_packed targets.
    
    Signed-off-by: Dimitar Dimitrov <dimi...@dinux.eu>

Diff:
---
 gcc/testsuite/c-c++-common/fam-in-union-alone-in-struct-1.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/testsuite/c-c++-common/fam-in-union-alone-in-struct-1.c 
b/gcc/testsuite/c-c++-common/fam-in-union-alone-in-struct-1.c
index 39ebf17850bf..9979e96fe703 100644
--- a/gcc/testsuite/c-c++-common/fam-in-union-alone-in-struct-1.c
+++ b/gcc/testsuite/c-c++-common/fam-in-union-alone-in-struct-1.c
@@ -45,7 +45,7 @@ int main ()
     __builtin_abort ();
   if (sizeof (struct only_fam) != 0)
     __builtin_abort ();
-  if (sizeof (struct only_fam_2) != sizeof (int))
+  if (sizeof (struct only_fam_2) != __alignof__ (int))
     __builtin_abort ();
   return 0;
 }

Reply via email to