asking for __attribute__((aligned()) clarification
Paul Koning
paulkoning@comcast.net
Mon Aug 19 14:12:00 GMT 2019
> On Aug 19, 2019, at 10:08 AM, Alexander Monakov <amonakov@ispras.ru> wrote:
>
> On Mon, 19 Aug 2019, Richard Earnshaw (lists) wrote:
>
>> Correct, but note that you can only pack structs and unions, not basic types.
>> there is no way of under-aligning a basic type except by wrapping it in a
>> struct.
>
> I don't think that's true. In GCC-9 the doc for 'aligned' attribute has been
> significantly revised, and now ends with
>
> When used as part of a typedef, the aligned attribute can both increase and
> decrease alignment, and specifying the packed attribute generates a warning.
>
> (but I'm sure defacto behavior of accepting and honoring reduced alignment on
> a typedef'ed scalar type goes way earlier than gcc-9)
Interesting. It certainly wasn't that way a decade ago. And for the old code pattern to generate a warning seems like a bad incompatible change. Honoring reducing alignments is one thing, complaining about packed is not good.
paul
More information about the Gcc
mailing list