https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72813
Bug ID: 72813 Summary: [6/7 Regression] atomic header cannot be compiled into translation unit with -fkeep-inline-functions Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: doko at gcc dot gnu.org Target Milestone: --- $ 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 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(); } ^ $ gcc-5 -std=c++11 -fdump-translation-unit -fkeep-inline-functions -c -x c++-header -fpermissive -w -fPIC foo.h