From 62bad7cd053b0f139bb46ae54976ed97d6dc0811 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Mon, 28 Nov 2011 20:28:23 +0000 Subject: 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 --- libstdc++-v3/include/bits/atomic_base.h | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) (limited to 'libstdc++-v3/include') 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 -- cgit v1.1