Hm, this is weird, as it really seems to depend on the -march=.... So if there is really a difference between those structs which make them incompatible on some archs, we should not consider them to be compatible in general.
struct g { int a[n]; int b; } *y; { struct g { int a[4]; int b; } *y2 = y; } But I do not see what could go wrong here as sizeof / alignment is the same for n = 4. So there is something else I missed.... Am Freitag, dem 22.12.2023 um 05:07 +0800 schrieb haochen.jiang: > On Linux/x86_64, > > 23fee88f84873b0b8b41c8e5a9b229d533fb4022 is the first bad commit > commit 23fee88f84873b0b8b41c8e5a9b229d533fb4022 > Author: Martin Uecker <uec...@tugraz.at> > Date: Tue Aug 15 14:58:32 2023 +0200 > > c23: tag compatibility rules for struct and unions > > caused > > FAIL: gcc.dg/gnu23-tag-4.c (test for excess errors) > > with GCC configured with > > ../../gcc/configure > --prefix=/export/users/haochenj/src/gcc-bisect/master/master/r14-6770/usr > --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld > --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet --without-isl > --enable-libmpx x86_64-linux --disable-bootstrap > > To reproduce: > > $ cd {build_dir}/gcc && make check RUNTESTFLAGS="dg.exp=gcc.dg/gnu23-tag-4.c > --target_board='unix{-m32\ -march=cascadelake}'" > $ cd {build_dir}/gcc && make check RUNTESTFLAGS="dg.exp=gcc.dg/gnu23-tag-4.c > --target_board='unix{-m64\ -march=cascadelake}'" > > (Please do not reply to this email, for question about this report, contact > me at haochen dot jiang at intel.com.) > (If you met problems with cascadelake related, disabling AVX512F in command > line might save that.) > (However, please make sure that there is no potential problems with AVX512.)