summaryrefslogtreecommitdiff
path: root/libstdc++-v3/testsuite/29_atomics/headers
diff options
context:
space:
mode:
authoramacleod <amacleod@138bc75d-0d04-0410-961f-82ee72b054a4>2011-11-28 20:28:23 +0000
committeramacleod <amacleod@138bc75d-0d04-0410-961f-82ee72b054a4>2011-11-28 20:28:23 +0000
commitc4606d19ff8feb9ef235d5286d394ed7838bd212 (patch)
tree41f01c8dcbd30412c4d9012cc48d334d8a6fd38c /libstdc++-v3/testsuite/29_atomics/headers
parent738c50b853f5ba0eaf93e23f6d29cbac761eef9e (diff)
downloadgcc-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.cc48
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
}