http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60695
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- That type isn't valid in ISO C++ and I don't see how you can usefully use it as an atomic object, so I don't think this failure matters. My preference would be to add this to std::atomic<_Tp>: static_assert( sizeof(_Tp) > 0, "Don't be silly" );