diff options
author | bkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-02-16 19:01:51 +0000 |
---|---|---|
committer | bkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-02-16 19:01:51 +0000 |
commit | f2d9c745bf15cd039fbe572767bc9a2e6e48bbcf (patch) | |
tree | 2a2a081228b66ebf2acae9efc0a8b0bb0973938c /libstdc++-v3/include/bits/atomic_base.h | |
parent | 95ca71d7d33d803a87bebfe8a41c2749f14b2432 (diff) | |
download | gcc-f2d9c745bf15cd039fbe572767bc9a2e6e48bbcf.tar.gz |
2011-02-16 Benjamin Kosnik <bkoz@redhat.com>
* include/std/atomic: Remove atomic_address, uplift to N3225.
* include/bits/atomic_0.h: Same.
* include/bits/atomic_2.h: Same.
* include/bits/atomic_base.h: Same.
* testsuite/29_atomics/atomic_address/*: Delete.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@170217 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/include/bits/atomic_base.h')
-rw-r--r-- | libstdc++-v3/include/bits/atomic_base.h | 69 |
1 files changed, 36 insertions, 33 deletions
diff --git a/libstdc++-v3/include/bits/atomic_base.h b/libstdc++-v3/include/bits/atomic_base.h index 7316d01a152..272a4cd4cfd 100644 --- a/libstdc++-v3/include/bits/atomic_base.h +++ b/libstdc++-v3/include/bits/atomic_base.h @@ -22,7 +22,7 @@ // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see // <http://www.gnu.org/licenses/>. -/** @file bits/atomic_base.h +/** @file bits/atomic_base.h * This is an internal header file, included by other library headers. * Do not attempt to use it directly. @headername{atomic} */ @@ -68,6 +68,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION return __mo2; } + void + atomic_thread_fence(memory_order); + + void + atomic_signal_fence(memory_order); + /// kill_dependency template<typename _Tp> inline _Tp @@ -78,7 +84,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION } /** - * @brief Base type for atomic_flag. + * @brief Base type for atomic_flag. * * Base type is POD with data, allowing atomic_flag to derive from * it and meet the standard layout type requirement. In addition to @@ -114,27 +120,24 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION namespace __atomic0 { struct atomic_flag; - struct atomic_address; template<typename _IntTp> struct __atomic_base; - } + } namespace __atomic2 { struct atomic_flag; - struct atomic_address; template<typename _IntTp> struct __atomic_base; - } + } namespace __atomic1 { using __atomic2::atomic_flag; - using __atomic0::atomic_address; using __atomic0::__atomic_base; - } + } /// Lock-free Property #if defined(_GLIBCXX_ATOMIC_BUILTINS_1) && defined(_GLIBCXX_ATOMIC_BUILTINS_2) \ @@ -157,7 +160,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION #define ATOMIC_INT_LOCK_FREE _GLIBCXX_ATOMIC_PROPERTY #define ATOMIC_LONG_LOCK_FREE _GLIBCXX_ATOMIC_PROPERTY #define ATOMIC_LLONG_LOCK_FREE _GLIBCXX_ATOMIC_PROPERTY -#define ATOMIC_ADDRESS_LOCK_FREE _GLIBCXX_ATOMIC_PROPERTY inline namespace _GLIBCXX_ATOMIC_NAMESPACE { } @@ -166,28 +168,28 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION typedef __atomic_base<char> atomic_char; /// atomic_schar - typedef __atomic_base<signed char> atomic_schar; + typedef __atomic_base<signed char> atomic_schar; /// atomic_uchar - typedef __atomic_base<unsigned char> atomic_uchar; + typedef __atomic_base<unsigned char> atomic_uchar; /// atomic_short - typedef __atomic_base<short> atomic_short; + typedef __atomic_base<short> atomic_short; /// atomic_ushort - typedef __atomic_base<unsigned short> atomic_ushort; + typedef __atomic_base<unsigned short> atomic_ushort; /// atomic_int typedef __atomic_base<int> atomic_int; /// atomic_uint - typedef __atomic_base<unsigned int> atomic_uint; + typedef __atomic_base<unsigned int> atomic_uint; /// atomic_long typedef __atomic_base<long> atomic_long; /// atomic_ulong - typedef __atomic_base<unsigned long> atomic_ulong; + typedef __atomic_base<unsigned long> atomic_ulong; /// atomic_llong typedef __atomic_base<long long> atomic_llong; @@ -212,50 +214,50 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION typedef __atomic_base<int_least8_t> atomic_int_least8_t; /// atomic_uint_least8_t - typedef __atomic_base<uint_least8_t> atomic_uint_least8_t; + typedef __atomic_base<uint_least8_t> atomic_uint_least8_t; /// atomic_int_least16_t - typedef __atomic_base<int_least16_t> atomic_int_least16_t; + typedef __atomic_base<int_least16_t> atomic_int_least16_t; /// atomic_uint_least16_t - typedef __atomic_base<uint_least16_t> atomic_uint_least16_t; + typedef __atomic_base<uint_least16_t> atomic_uint_least16_t; /// atomic_int_least32_t - typedef __atomic_base<int_least32_t> atomic_int_least32_t; + typedef __atomic_base<int_least32_t> atomic_int_least32_t; /// atomic_uint_least32_t - typedef __atomic_base<uint_least32_t> atomic_uint_least32_t; + typedef __atomic_base<uint_least32_t> atomic_uint_least32_t; /// atomic_int_least64_t - typedef __atomic_base<int_least64_t> atomic_int_least64_t; + typedef __atomic_base<int_least64_t> atomic_int_least64_t; /// atomic_uint_least64_t - typedef __atomic_base<uint_least64_t> atomic_uint_least64_t; + typedef __atomic_base<uint_least64_t> atomic_uint_least64_t; /// atomic_int_fast8_t typedef __atomic_base<int_fast8_t> atomic_int_fast8_t; /// atomic_uint_fast8_t - typedef __atomic_base<uint_fast8_t> atomic_uint_fast8_t; + typedef __atomic_base<uint_fast8_t> atomic_uint_fast8_t; /// atomic_int_fast16_t - typedef __atomic_base<int_fast16_t> atomic_int_fast16_t; + typedef __atomic_base<int_fast16_t> atomic_int_fast16_t; /// atomic_uint_fast16_t - typedef __atomic_base<uint_fast16_t> atomic_uint_fast16_t; + typedef __atomic_base<uint_fast16_t> atomic_uint_fast16_t; /// atomic_int_fast32_t - typedef __atomic_base<int_fast32_t> atomic_int_fast32_t; + typedef __atomic_base<int_fast32_t> atomic_int_fast32_t; /// atomic_uint_fast32_t - typedef __atomic_base<uint_fast32_t> atomic_uint_fast32_t; + typedef __atomic_base<uint_fast32_t> atomic_uint_fast32_t; /// atomic_int_fast64_t - typedef __atomic_base<int_fast64_t> atomic_int_fast64_t; + typedef __atomic_base<int_fast64_t> atomic_int_fast64_t; /// atomic_uint_fast64_t - typedef __atomic_base<uint_fast64_t> atomic_uint_fast64_t; + typedef __atomic_base<uint_fast64_t> atomic_uint_fast64_t; /// atomic_intptr_t @@ -265,7 +267,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION typedef __atomic_base<uintptr_t> atomic_uintptr_t; /// atomic_size_t - typedef __atomic_base<size_t> atomic_size_t; + typedef __atomic_base<size_t> atomic_size_t; /// atomic_intmax_t typedef __atomic_base<intmax_t> atomic_intmax_t; @@ -277,16 +279,17 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION typedef __atomic_base<ptrdiff_t> atomic_ptrdiff_t; - struct atomic_bool; - #define ATOMIC_VAR_INIT(_VI) { _VI } template<typename _Tp> struct atomic; + template<typename _Tp> + struct atomic<_Tp*>; + // @} group atomics _GLIBCXX_END_NAMESPACE_VERSION -} // namespace +} // namespace std #endif |