$ gcc-6 -std=c++11 -fdump-translation-unit -fkeep-inline-functions -c -x c++-header -fpermissive -w -fPIC foo.h
In file included from /usr/include/c++/6/atomic:41:0, from foo.h:1:
/usr/include/c++/6/bits/atomic_base.h: In member function 'std::atomic<bool>::operator bool() const':
/usr/include/c++/6/bits/atomic_base.h:390:7: error: inlining failed in call to always_inline 'std::__atomic_base<_IntTp>::__int_type std::__atomic_base<_IntTp>::load(std::memory_order) const noexcept [with _ITp = bool; std::__atomic_base<_IntTp>::__int_type = bool; std::memory_order = std::memory_order]': function body not available load(memory_order __m = memory_order_seq_cst) const noexcept
^~~~
In file included from foo.h:1:0:
/usr/include/c++/6/atomic:81:27: note: called from here
{ return _M_base.load(); } ^
$ echo '#include <atomic>' > foo.h
$ gcc-6 -std=c++11 -fdump- translation- unit -fkeep- inline- functions -c -x c++-header -fpermissive -w -fPIC foo.h c++/6/atomic: 41:0,
from foo.h:1: c++/6/bits/ atomic_ base.h: In member function 'std::atomic< bool>:: operator bool() const': c++/6/bits/ atomic_ base.h: 390:7: error: inlining failed in call to always_inline 'std::_ _atomic_ base<_IntTp> ::__int_ type std::__ atomic_ base<_IntTp> ::load( std::memory_ order) const noexcept [with _ITp = bool; std::__ atomic_ base<_IntTp> ::__int_ type = bool; std::memory_order = std::memory_ order]' : function body not available
load(memory_ order __m = memory_ order_seq_ cst) const noexcept c++/6/atomic: 81:27: note: called from here
^
In file included from /usr/include/
/usr/include/
/usr/include/
^~~~
In file included from foo.h:1:0:
/usr/include/
{ return _M_base.load(); }
$ gcc-5 -std=c++11 -fdump- translation- unit -fkeep- inline- functions -c -x c++-header -fpermissive -w -fPIC foo.h