https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71789
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- The original intention of the C++ committee was that std::atomic_int would be compatible with the corresponding C type, but that design was changed during the C11 process when the _Atomic qualifier was added. They are distinct types with no relation. In libstdc++ we *try* to make them have the same size and alignment as the corresponding C types, but there are bugs on (at least) x86.