Comment by matheusmoreira
3 years ago
The compiler knows the size of statically allocated buffers and can be told about alignments with:
__attribute__((aligned(N)))
__builtin_assume_aligned(P, N)
Is this information sufficient for correct code generation?
Strict aliasing doesn't allow the compiler to magically decide that someplace you are writing happens to be in a statically allocated buffer. Strict aliasing says you have a pointer of some type and what you do with it has to agree with the type of that pointer.