https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120900
H.J. Lu <hjl.tools at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|WAITING |NEW --- Comment #2 from H.J. Lu <hjl.tools at gmail dot com> --- (In reply to Andrew Pinski from comment #1) > Are you sure it is just where the aligned attribute is located? > > Because I get a warning for both the C and C++ if I use the following > definition: > typedef struct __attribute__((aligned(32))) c1 { > long double a; > long double b; > } c1 ; They are different. typedef struct __attribute__((aligned(32))) c1 { long double a; long double b; } c1; is a type aligned to 32 bytes. typedef struct { long double a; long double b; } c1 __attribute__((aligned(32))); is a type aligned to 32 bytes, whose canonical is typedef struct { long double a; long double b; } c1;