https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58605

--- Comment #7 from CVS 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/git/gitweb.cgi?p=gcc.git;h=e4379a931d140a71b36eaecceace319837fda321

commit r10-5914-ge4379a931d140a71b36eaecceace319837fda321
Author: Jonathan Wakely <jwak...@redhat.com>
Date:   Sat Jan 11 00:11:54 2020 +0000

    libstdc++: Value-initialize std::atomic for C++20 (P0883R2)

    This implements the new requirements for C++20 that std::atomic should
    initialize the atomic variable in its default constructor.

    This patch does not add the deprecated attribute to atomic_init, but
    that should be done at some point as it's deprecated in C++20.

    The paper also deprecates the ATOMIC_FLAG_INIT macro, although we can't
    apply the deprecated attribute to a macro.

        PR libstdc++/58605
        * include/bits/atomic_base.h (__cpp_lib_atomic_value_initialization):
        Define.
        (__atomic_flag_base, __atomic_base, __atomic_base<_PTp*>)
        (__atomic_float): Add default member initializer for C++20.
        * include/std/atomic (atomic): Likewise.
        (atomic::atomic()): Remove noexcept-specifier on default constructor.
        * include/std/version (__cpp_lib_atomic_value_initialization): Define.
        * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust dg-error line
        number.
        * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
        * testsuite/29_atomics/atomic/cons/value_init.cc: New test.
        * testsuite/29_atomics/atomic_flag/cons/value_init.cc: New test.
        * testsuite/29_atomics/atomic_flag/requirements/trivial.cc: Adjust
        expected result for is_trivially_default_constructible.
        * testsuite/29_atomics/atomic_float/requirements.cc: Likewise.
        * testsuite/29_atomics/atomic_float/value_init.cc: New test.
        * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Likewise.
        * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Likewise.
        * testsuite/29_atomics/atomic_integral/cons/value_init.cc
        * testsuite/29_atomics/atomic_integral/requirements/trivial.cc: Adjust
        expected results for is_trivially_default_constructible.
        * testsuite/util/testsuite_common_types.h (has_trivial_dtor): Add
        new test generator.

Reply via email to