https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65145
--- Comment #3 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- On Fri, 20 Feb 2015, alexey.lapshin at oracle dot com wrote: > Hi Joseph, > > Could you help me with a link to the correct description of atomic ABI, > which in fact used by gcc/g++, please ? I don't believe it's documented, but I think the general rule for C is: if a type's size is 1, 2, 4, 8, 16, its alignment is increased by _Atomic to that of the atomic integer type of that size, which is the same as that of the non-atomic integer type unless increased by TARGET_ATOMIC_ALIGN_FOR_MODE; the size is never increased by _Atomic, and alignment of types not of those sizes is unchanged. If the code differs, likely the code should take precedence over that description. (But of course if a type is under-aligned for the instructions used to operate on it, there's a bug, whether in the alignment or in the instruction choice.)