> On Aug 19, 2019, at 10:08 AM, Alexander Monakov <amona...@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