https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88085
--- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> --- An obvious workaround is to have a type which is also aligned to what you want the global to be aligned to and that will work. typedef int __attribute__((vector_size(16))) v4si; typedef v4si __attribute__((aligned(4))) v4sia4; v4sia4 a4 __attribute__((aligned(4))); or: typedef int __attribute__((aligned(1))) inta1; inta1 __attribute__((aligned(1))) var; or for the case in PR 102162 : typedef unsigned int u32a1 __attribute__((__aligned__(1))); extern u32a1 output_len __attribute__((__aligned__(1)));