diff options
author | amacleod <amacleod@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-11-28 20:28:23 +0000 |
---|---|---|
committer | amacleod <amacleod@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-11-28 20:28:23 +0000 |
commit | c4606d19ff8feb9ef235d5286d394ed7838bd212 (patch) | |
tree | 41f01c8dcbd30412c4d9012cc48d334d8a6fd38c /libstdc++-v3/testsuite/29_atomics/headers | |
parent | 738c50b853f5ba0eaf93e23f6d29cbac761eef9e (diff) | |
download | gcc-c4606d19ff8feb9ef235d5286d394ed7838bd212.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181784 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/testsuite/29_atomics/headers')
-rw-r--r-- | libstdc++-v3/testsuite/29_atomics/headers/atomic/macros.cc | 48 |
1 files changed, 32 insertions, 16 deletions
diff --git a/libstdc++-v3/testsuite/29_atomics/headers/atomic/macros.cc b/libstdc++-v3/testsuite/29_atomics/headers/atomic/macros.cc index 1bbab865f24..fe78cff28aa 100644 --- a/libstdc++-v3/testsuite/29_atomics/headers/atomic/macros.cc +++ b/libstdc++-v3/testsuite/29_atomics/headers/atomic/macros.cc @@ -20,6 +20,10 @@ #include <atomic> +#ifndef ATOMIC_BOOL_LOCK_FREE +# error "ATOMIC_BOOL_LOCK_FREE must be a macro" +#endif + #ifndef ATOMIC_CHAR_LOCK_FREE # error "ATOMIC_CHAR_LOCK_FREE must be a macro" #endif @@ -52,6 +56,10 @@ # error "ATOMIC_LLONG_LOCK_FREE must be a macro" #endif +#ifndef ATOMIC_POINTER_LOCK_FREE +# error "ATOMIC_POINTER_LOCK_FREE must be a macro" +#endif + #ifndef ATOMIC_FLAG_INIT #error "ATOMIC_FLAG_INIT_must_be_a_macro" #endif @@ -65,35 +73,43 @@ extern void abort(void); int main () { - if (ATOMIC_CHAR_LOCK_FREE != 0 && ATOMIC_CHAR_LOCK_FREE != 1 - && ATOMIC_CHAR_LOCK_FREE != 2) +#if (ATOMIC_BOOL_LOCK_FREE != 1 && ATOMIC_BOOL_LOCK_FREE != 2) + abort (); +#endif + +#if (ATOMIC_CHAR_LOCK_FREE != 1 && ATOMIC_CHAR_LOCK_FREE != 2) + abort (); +#endif + +#if (ATOMIC_CHAR16_T_LOCK_FREE != 1 && ATOMIC_CHAR16_T_LOCK_FREE != 2) abort (); +#endif - if (ATOMIC_CHAR16_T_LOCK_FREE != 0 && ATOMIC_CHAR16_T_LOCK_FREE != 1 - && ATOMIC_CHAR16_T_LOCK_FREE != 2) +#if (ATOMIC_CHAR32_T_LOCK_FREE != 1 && ATOMIC_CHAR32_T_LOCK_FREE != 2) abort (); +#endif - if (ATOMIC_CHAR32_T_LOCK_FREE != 0 && ATOMIC_CHAR32_T_LOCK_FREE != 1 - && ATOMIC_CHAR32_T_LOCK_FREE != 2) +#if (ATOMIC_WCHAR_T_LOCK_FREE != 1 && ATOMIC_WCHAR_T_LOCK_FREE != 2) abort (); +#endif - if (ATOMIC_WCHAR_T_LOCK_FREE != 0 && ATOMIC_WCHAR_T_LOCK_FREE != 1 - && ATOMIC_WCHAR_T_LOCK_FREE != 2) +#if (ATOMIC_SHORT_LOCK_FREE != 1 && ATOMIC_SHORT_LOCK_FREE != 2) abort (); +#endif - if (ATOMIC_SHORT_LOCK_FREE != 0 && ATOMIC_SHORT_LOCK_FREE != 1 - && ATOMIC_SHORT_LOCK_FREE != 2) +#if (ATOMIC_INT_LOCK_FREE != 1 && ATOMIC_INT_LOCK_FREE != 2) abort (); +#endif - if (ATOMIC_INT_LOCK_FREE != 0 && ATOMIC_INT_LOCK_FREE != 1 - && ATOMIC_INT_LOCK_FREE != 2) +#if (ATOMIC_LONG_LOCK_FREE != 1 && ATOMIC_LONG_LOCK_FREE != 2) abort (); +#endif - if (ATOMIC_LONG_LOCK_FREE != 0 && ATOMIC_LONG_LOCK_FREE != 1 - && ATOMIC_LONG_LOCK_FREE != 2) +#if (ATOMIC_LLONG_LOCK_FREE != 1 && ATOMIC_LLONG_LOCK_FREE != 2) abort (); +#endif - if (ATOMIC_LLONG_LOCK_FREE != 0 && ATOMIC_LLONG_LOCK_FREE != 1 - && ATOMIC_LLONG_LOCK_FREE != 2) +#if (ATOMIC_POINTER_LOCK_FREE != 1 && ATOMIC_POINTER_LOCK_FREE != 2) abort (); +#endif } |