* Nathan Chancellor <nathan@xxxxxxxxxx> wrote: > Nowhere does it mention that it accepts the attribute before the type > keyword and neither compiler respects the attribute if it comes before > the keyword but at least clang warns: https://godbolt.org/z/E9fTecKPv > > $ cat test.c > #include <stdio.h> > > struct foo { > int a; > int b; > }; > > struct __attribute__ ((aligned (64))) bar { > int a; > int b; > }; > > __attribute__ ((aligned (64))) struct baz { > int a; > int b; > }; > > int main(void) > { > printf("struct foo alignment: %zd\n", _Alignof(struct foo)); > printf("struct bar alignment: %zd\n", _Alignof(struct bar)); > printf("struct baz alignment: %zd\n", _Alignof(struct baz)); > return 0; > } > > $ gcc --version | head -1 > gcc (GCC) 11.2.1 20211231 > > $ gcc -std=gnu89 -Wall -Wextra test.c; and ./a.out > struct foo alignment: 4 > struct bar alignment: 64 > struct baz alignment: 4 Ugh - so my changes there are outright buggy. I'm reverting all those attribute position changes as we speak ... I'm actually happy about this in a way, as it settles the issue nicely. :-) Thanks, Ingo