http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56714
--- Comment #3 from Jan Hubicka <hubicka at gcc dot gnu.org> 2013-03-31 20:08:22 UTC --- I guess it is really complaining about the lack of inline modifier. __attribute__((__always_inline__)) bool atomic_flag_test_and_set_explicit(atomic_flag* __a, memory_order __m) noexcept { return __a->test_and_set(__m); } I think adding "inline" should do the trick? Honza