diff options
author | Andrew MacLeod <amacleod@redhat.com> | 2011-11-28 20:28:23 +0000 |
---|---|---|
committer | Andrew Macleod <amacleod@gcc.gnu.org> | 2011-11-28 20:28:23 +0000 |
commit | 62bad7cd053b0f139bb46ae54976ed97d6dc0811 (patch) | |
tree | 41f01c8dcbd30412c4d9012cc48d334d8a6fd38c /libstdc++-v3/include | |
parent | f9c55897eb729f68881d8f729fb112040bec695a (diff) | |
download | gcc-62bad7cd053b0f139bb46ae54976ed97d6dc0811.zip gcc-62bad7cd053b0f139bb46ae54976ed97d6dc0811.tar.gz gcc-62bad7cd053b0f139bb46ae54976ed97d6dc0811.tar.bz2 |
c-family
* c-cpp-builtin.c (cpp_atomic_builtins):New. Emit all atomic
predefines in one place. Add LOCK_FREE predefines.
(c_cpp_builtins): Move Legacy HAVE_SYNC predefines to
new func.
libstdc++-v3
* include/bits/atomic_base.h (ATOMIC_*_LOCK_FREE): Use new cpp
predefined macros.
* testsuite/29_atomics/headers/atomic/macros.cc: Add BOOL and POINTER
macro checks. Check for expected compile time values.
From-SVN: r181784
Diffstat (limited to 'libstdc++-v3/include')
-rw-r--r-- | libstdc++-v3/include/bits/atomic_base.h | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/libstdc++-v3/include/bits/atomic_base.h b/libstdc++-v3/include/bits/atomic_base.h index cf292a8..2711323 100644 --- a/libstdc++-v3/include/bits/atomic_base.h +++ b/libstdc++-v3/include/bits/atomic_base.h @@ -91,18 +91,17 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION /// Lock-free Property -#define LOCKFREE_PROP(T) (__atomic_always_lock_free (sizeof (T), 0) ? 2 : 1) - -#define ATOMIC_BOOL_LOCK_FREE LOCKFREE_PROP (bool) -#define ATOMIC_CHAR_LOCK_FREE LOCKFREE_PROP (char) -#define ATOMIC_CHAR16_T_LOCK_FREE LOCKFREE_PROP (char16_t) -#define ATOMIC_CHAR32_T_LOCK_FREE LOCKFREE_PROP (char32_t) -#define ATOMIC_WCHAR_T_LOCK_FREE LOCKFREE_PROP (wchar_t) -#define ATOMIC_SHORT_LOCK_FREE LOCKFREE_PROP (short) -#define ATOMIC_INT_LOCK_FREE LOCKFREE_PROP (int) -#define ATOMIC_LONG_LOCK_FREE LOCKFREE_PROP (long) -#define ATOMIC_LLONG_LOCK_FREE LOCKFREE_PROP (long long) -#define ATOMIC_POINTER_LOCK_FREE LOCKFREE_PROP (void *) + +#define ATOMIC_BOOL_LOCK_FREE __GCC_ATOMIC_BOOL_LOCK_FREE +#define ATOMIC_CHAR_LOCK_FREE __GCC_ATOMIC_CHAR_LOCK_FREE +#define ATOMIC_WCHAR_T_LOCK_FREE __GCC_ATOMIC_WCHAR_T_LOCK_FREE +#define ATOMIC_CHAR16_T_LOCK_FREE __GCC_ATOMIC_CHAR16_T_LOCK_FREE +#define ATOMIC_CHAR32_T_LOCK_FREE __GCC_ATOMIC_CHAR32_T_LOCK_FREE +#define ATOMIC_SHORT_LOCK_FREE __GCC_ATOMIC_SHORT_LOCK_FREE +#define ATOMIC_INT_LOCK_FREE __GCC_ATOMIC_INT_LOCK_FREE +#define ATOMIC_LONG_LOCK_FREE __GCC_ATOMIC_LONG_LOCK_FREE +#define ATOMIC_LLONG_LOCK_FREE __GCC_ATOMIC_LLONG_LOCK_FREE +#define ATOMIC_POINTER_LOCK_FREE __GCC_ATOMIC_POINTER_LOCK_FREE // Base types for atomics. template<typename _IntTp> |