gcc/libstdc++-v3/include
Jonathan Wakely a90fe12c80 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.

From-SVN: r273420
2019-07-11 20:43:25 +01:00
..
backward
bits Define std::atomic_ref and std::atomic<floating-point> for C++20 2019-07-11 20:43:25 +01:00
c
c_compatibility
c_global Avoid undefined behaviour in std::byte operators (LWG 2950) 2019-06-18 12:39:43 +01:00
c_std
debug
decimal
experimental PR libstdc++/90281 Fix string conversions for filesystem::path 2019-06-17 15:19:04 +01:00
ext Fix recent regression in __atomic_add_dispatch 2019-07-06 22:16:38 +01:00
parallel
precompiled
pstl pstl_config.h (_PSTL_PRAGMA_SIMD_SCAN, [...]): Define to OpenMP 5.0 pragmas even for GCC 10.0+. 2019-06-25 08:59:12 +02:00
std Define std::atomic_ref and std::atomic<floating-point> for C++20 2019-07-11 20:43:25 +01:00
tr1
tr2
Makefile.am Replace std::to_string for integers with optimized version 2019-06-12 15:52:02 +01:00
Makefile.in Replace std::to_string for integers with optimized version 2019-06-12 15:52:02 +01:00