https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114103
--- Comment #16 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Jonathan Wakely <r...@gcc.gnu.org>: https://gcc.gnu.org/g:e162b2ff52c5e20f6624ff6b66845fe573cef183 commit r14-9371-ge162b2ff52c5e20f6624ff6b66845fe573cef183 Author: Jonathan Wakely <jwak...@redhat.com> Date: Mon Feb 26 13:17:32 2024 +0000 libstdc++: Do not define lock-free atomic aliases if not fully lock-free [PR114103] The whole point of these typedefs is to guarantee lock-freedom, so if the target has no such types, we shouldn't defined the typedefs at all. libstdc++-v3/ChangeLog: PR libstdc++/114103 * include/bits/version.def (atomic_lock_free_type_aliases): Add extra_cond to check for at least one always-lock-free type. * include/bits/version.h: Regenerate. * include/std/atomic (atomic_signed_lock_free) (atomic_unsigned_lock_free): Only use always-lock-free types. * src/c++20/tzdb.cc (time_zone::_Impl::RulesCounter): Don't use atomic counter if lock-free aliases aren't available. * testsuite/29_atomics/atomic/lock_free_aliases.cc: XFAIL for targets without lock-free word-size compare_exchange.