https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101002
--- Comment #11 from Peter Bergner <bergner at gcc dot gnu.org> --- (In reply to Segher Boessenkool from comment #9) > (In reply to Peter Bergner from comment #4) > > These die because the struct we're using to check the alignment of uses long > > double as the "big" aligned type. We could either disable the tests using a > > "dg-require-effective-target longdouble128" or we could use a different more > > aligned type in the struct. Maybe _Float128 or _Decimal128 or use an > > attribute aligned? Thoughts? > > Maybe just some vector type? Those have 128-bit alignment even with > -mno-altivec, > right? Actually, this fixes the two failing test cases for us. i386, rs6000, pa and ia64 ports all set that. If people don't like that, I suppose we could just add a test for __powerpc__ in addition to the i386 test. Thoughts? diff --git a/gcc/ginclude/stddef.h b/gcc/ginclude/stddef.h index acac631c649..231c55f22d1 100644 --- a/gcc/ginclude/stddef.h +++ b/gcc/ginclude/stddef.h @@ -430,7 +430,7 @@ typedef struct { use __float128 here; that is only available on some architectures, but only on i386 is extra alignment needed for __float128. */ -#ifdef __i386__ +#ifdef __SIZEOF_FLOAT128__ __float128 __max_align_f128 __attribute__((__aligned__(__alignof(__float128)))); #endif } max_align_t;