https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54412
--- Comment #54 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
> Isn't it?
>
> ```
> #include <stdio.h>
>
> int
> main(void)
> {
> _Alignas(32) char data1[32] = "meow";
> printf("data1 = %p\n", data1);
>
> char data2[] = "a";
> printf("data2 = %p\n", data2);
>
> _Alignas(32) char data3[32] = "bark";
> printf("data3 = %p\n", data3);
>
> _Alignas(64) char data4[64] = "superlarge";
> printf("data4 = %p\n", data4);
> }
Yes, my wording was imprecise, I should have said spill slots, i.e. anything
going through assign_stack_local directly, e.g. assign_stack_temp_for_type.
User-declared stack variables are indeed properly realigned, and now
argument/return stack slots are after the patch, which is of course a net
progress.