http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60360
--- Comment #6 from DaBler <dabler at gmail dot com> --- When I call sizeof(...) on the int type (instead of a variable), it is the same: typedef int TypeInt __attribute((aligned(64))); printf("%zu %zu\n", sizeof(TypeInt), alignof(TypeInt)); // Output: 4 64 Moreover, It is not possible to use this type for a construction of arrays. In contrast, When I call sizeof(...) on the struct type: typedef struct { int i; } __attribute((aligned(64))) TypeStruct; printf("%zu %zu\n", sizeof(TypeStruct), alignof(TypeStruct)); // Output: 64 64 Thus, I still see an inconsistency.