https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96159
--- Comment #9 from Martin Uecker <muecker at gwdg dot de> --- Yes the clang behavior is useful. If we get the optimal code for types with sufficient alignment, then I do not think a separate set of functions would be required. A programmer simply can use the _Atomic(T) types which have optimal alignment to get fastest code possible and somebody who needs these functions on existing data structures could get the safe access by default (and maybe a warning it alignment is not optimal). This would appear to be the ideal design. Even if we document the alignment requirement, it is still very dangerous to use because alignment requirement may not be identical for all architectures.