summaryrefslogtreecommitdiff
path: root/libstdc++-v3/include/bits/atomic_base.h
diff options
context:
space:
mode:
authorbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>2011-02-16 19:01:51 +0000
committerbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>2011-02-16 19:01:51 +0000
commitf2d9c745bf15cd039fbe572767bc9a2e6e48bbcf (patch)
tree2a2a081228b66ebf2acae9efc0a8b0bb0973938c /libstdc++-v3/include/bits/atomic_base.h
parent95ca71d7d33d803a87bebfe8a41c2749f14b2432 (diff)
downloadgcc-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.h69
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