https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102162
--- Comment #6 from deller at gmx dot de --- > So, it seems the __aligned__ attribute is ignored: > extern u32 output_len __attribute__((__aligned__(1))); I think the aligned attribute is not relevant here. Even u32 output_len; will generate word-accesses. I'd say that the "forcement-to-packed" is ignored when the compiler knows that the source is aligned. The "__attribute__((__packed__))" should *always* trigger byte-accesses.