http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60258
--- Comment #5 from Daniel Krügler <daniel.kruegler at googlemail dot com> --- (In reply to Daniel Krügler from comment #4) > Reduced example: More reduced by eliminating library dependencies: //------------------ struct atomic_bool { atomic_bool(const atomic_bool&) = delete; constexpr atomic_bool(bool) noexcept { } }; #define USE_TEMPLATE #ifdef USE_TEMPLATE template <class> #endif struct base { atomic_bool magic{false}; }; int main() { #ifdef USE_TEMPLATE base<void> b; #else base b; #endif } //------------------