On Wed, 25 Mar 2015, Jonathan Wakely wrote: > I've convinced myself that Richard's patch is correct in all cases, > but I think we also want this patch, to fix PR62259 and PR65147. > > For the generic std::atomic<T> (i.e. not the integral or pointer > specializations) we should increase the alignment of atomic types that > have the same size as one of the standard integral types. This should > be consistent with what the C front end does for _Atomic, based on > what Joseph told me on IRC:
Wrong. > <jsm28> jwakely: _Atomic aligns 1/2/4/8/16-byte types the same as > integer types of that size. No it doesn't! It's "same or higher as". > <jsm28> (Which may not be alignment = size, depending on the > architecture.) > > Ideally we'd use an attribute like Andrew describes at > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62259#c4 but that's not > going to happen for GCC 5, so this just looks for an integral type of > the same size and uses its alignment. > > Tested x86_64-linux, powerpc64le-linux. > > I'll wait for RM approval for this and Richard's patch (which is OK > from a libstdc++ perspective). > brgds, H-P