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.

Reply via email to