https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96159
Gabriel Ravier <gabravier at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |gabravier at gmail dot com --- Comment #8 from Gabriel Ravier <gabravier at gmail dot com> --- I do agree that either: - GCC's behavior should be aligned with Clang's and that it should provide some kind of "known-aligned load" function (along with the corresponding ones for store/exchange/compare_exchange) - or there should at least be some kind of "safe load" function (along with the corresponding ones) for the cases where the alignment is unknown. I personally do prefer the first solution, personally, unless the Clang devs can be convinced to change their builtin, as I think it would be better to have the same behavior on both compilers. In any case, though, I do think there is a documentation bug here, and I would also say it would be quite nice to have a warning when using the built-in in a way that makes it much slower/invalid, like what Clang does: <source>:240:5: warning: misaligned atomic operation may incur significant performance penalty; the expected alignment (8 bytes) exceeds the actual alignment (4 bytes) [-Watomic-alignment] __atomic_load(x, &r, __ATOMIC_SEQ_CST); ^