r273420 - in /trunk/libstdc++-v3: ChangeLog inc...
redi@gcc.gnu.org
redi@gcc.gnu.org
Thu Jul 11 19:43:00 GMT 2019
Author: redi
Date: Thu Jul 11 19:43:25 2019
New Revision: 273420
URL: https://gcc.gnu.org/viewcvs?rev=273420&root=gcc&view=rev
Log:
Define std::atomic_ref and std::atomic<floating-point> for C++20
This adds the new atomic types from C++2a, as proposed by P0019 and
P0020. To reduce duplication the calls to the compiler's atomic
built-ins are wrapped in new functions in the __atomic_impl namespace.
These functions are currently only used by std::atomic<floating-point>
and std::atomic_ref but could also be used for all other specializations
of std::atomic.
* include/bits/atomic_base.h (__atomic_impl): New namespace for
wrappers around atomic built-ins.
(__atomic_float, __atomic_ref): New class templates for use as base
classes.
* include/std/atomic (atomic<float>, atomic<double>)
(atomic<long double>): New explicit specializations.
(atomic_ref): New class template.
(__cpp_lib_atomic_ref): Define.
* include/std/version (__cpp_lib_atomic_ref): Define.
* testsuite/29_atomics/atomic/60695.cc: Adjust dg-error.
* testsuite/29_atomics/atomic_float/1.cc: New test.
* testsuite/29_atomics/atomic_float/requirements.cc: New test.
* testsuite/29_atomics/atomic_ref/deduction.cc: New test.
* testsuite/29_atomics/atomic_ref/float.cc: New test.
* testsuite/29_atomics/atomic_ref/generic.cc: New test.
* testsuite/29_atomics/atomic_ref/integral.cc: New test.
* testsuite/29_atomics/atomic_ref/pointer.cc: New test.
* testsuite/29_atomics/atomic_ref/requirements.cc: New test.
Added:
trunk/libstdc++-v3/testsuite/29_atomics/atomic_float/
trunk/libstdc++-v3/testsuite/29_atomics/atomic_float/1.cc
trunk/libstdc++-v3/testsuite/29_atomics/atomic_float/requirements.cc
trunk/libstdc++-v3/testsuite/29_atomics/atomic_ref/
trunk/libstdc++-v3/testsuite/29_atomics/atomic_ref/deduction.cc
- copied, changed from r273409, trunk/libstdc++-v3/testsuite/29_atomics/atomic/60695.cc
trunk/libstdc++-v3/testsuite/29_atomics/atomic_ref/float.cc
trunk/libstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc
trunk/libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc
trunk/libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc
trunk/libstdc++-v3/testsuite/29_atomics/atomic_ref/requirements.cc
Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/include/bits/atomic_base.h
trunk/libstdc++-v3/include/std/atomic
trunk/libstdc++-v3/include/std/version
trunk/libstdc++-v3/testsuite/29_atomics/atomic/60695.cc
More information about the Libstdc++-cvs
mailing list