]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/testsuite/29_atomics/headers/atomic/macros.cc
Update copyright years in libstdc++-v3/
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / 29_atomics / headers / atomic / macros.cc
CommitLineData
d466a7e2
BK
1// { dg-options "-std=gnu++0x" }
2// { dg-do compile }
3
aa118a03 4// Copyright (C) 2008-2014 Free Software Foundation, Inc.
d466a7e2
BK
5//
6// This file is part of the GNU ISO C++ Library. This library is free
7// software; you can redistribute it and/or modify it under the
8// terms of the GNU General Public License as published by the
748086b7 9// Free Software Foundation; either version 3, or (at your option)
d466a7e2
BK
10// any later version.
11
12// This library is distributed in the hope that it will be useful,
13// but WITHOUT ANY WARRANTY; without even the implied warranty of
14// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15// GNU General Public License for more details.
16
17// You should have received a copy of the GNU General Public License along
748086b7
JJ
18// with this library; see the file COPYING3. If not see
19// <http://www.gnu.org/licenses/>.
d466a7e2 20
afd88205 21#include <atomic>
d466a7e2 22
62bad7cd
AM
23#ifndef ATOMIC_BOOL_LOCK_FREE
24# error "ATOMIC_BOOL_LOCK_FREE must be a macro"
25#endif
26
94a86be0
BK
27#ifndef ATOMIC_CHAR_LOCK_FREE
28# error "ATOMIC_CHAR_LOCK_FREE must be a macro"
94a86be0
BK
29#endif
30
31#ifndef ATOMIC_CHAR16_T_LOCK_FREE
32# error "ATOMIC_CHAR16_T_LOCK_FREE must be a macro"
94a86be0
BK
33#endif
34
35#ifndef ATOMIC_CHAR32_T_LOCK_FREE
36# error "ATOMIC_CHAR32_T_LOCK_FREE must be a macro"
94a86be0
BK
37#endif
38
39#ifndef ATOMIC_WCHAR_T_LOCK_FREE
40# error "ATOMIC_WCHAR_T_LOCK_FREE must be a macro"
94a86be0
BK
41#endif
42
43#ifndef ATOMIC_SHORT_LOCK_FREE
44# error "ATOMIC_SHORT_LOCK_FREE must be a macro"
94a86be0
BK
45#endif
46
47#ifndef ATOMIC_INT_LOCK_FREE
48# error "ATOMIC_INT_LOCK_FREE must be a macro"
94a86be0
BK
49#endif
50
51#ifndef ATOMIC_LONG_LOCK_FREE
52# error "ATOMIC_LONG_LOCK_FREE must be a macro"
94a86be0
BK
53#endif
54
55#ifndef ATOMIC_LLONG_LOCK_FREE
56# error "ATOMIC_LLONG_LOCK_FREE must be a macro"
d466a7e2
BK
57#endif
58
62bad7cd
AM
59#ifndef ATOMIC_POINTER_LOCK_FREE
60# error "ATOMIC_POINTER_LOCK_FREE must be a macro"
61#endif
62
d466a7e2
BK
63#ifndef ATOMIC_FLAG_INIT
64 #error "ATOMIC_FLAG_INIT_must_be_a_macro"
65#endif
94a86be0
BK
66
67#ifndef ATOMIC_VAR_INIT
68 #error "ATOMIC_VAR_INIT_must_be_a_macro"
69#endif
86951993
AM
70
71
72extern void abort(void);
73
a0eabe57 74int main ()
86951993 75{
62bad7cd
AM
76#if (ATOMIC_BOOL_LOCK_FREE != 1 && ATOMIC_BOOL_LOCK_FREE != 2)
77 abort ();
78#endif
79
80#if (ATOMIC_CHAR_LOCK_FREE != 1 && ATOMIC_CHAR_LOCK_FREE != 2)
81 abort ();
82#endif
83
84#if (ATOMIC_CHAR16_T_LOCK_FREE != 1 && ATOMIC_CHAR16_T_LOCK_FREE != 2)
86951993 85 abort ();
62bad7cd 86#endif
86951993 87
62bad7cd 88#if (ATOMIC_CHAR32_T_LOCK_FREE != 1 && ATOMIC_CHAR32_T_LOCK_FREE != 2)
86951993 89 abort ();
62bad7cd 90#endif
86951993 91
62bad7cd 92#if (ATOMIC_WCHAR_T_LOCK_FREE != 1 && ATOMIC_WCHAR_T_LOCK_FREE != 2)
86951993 93 abort ();
62bad7cd 94#endif
86951993 95
62bad7cd 96#if (ATOMIC_SHORT_LOCK_FREE != 1 && ATOMIC_SHORT_LOCK_FREE != 2)
86951993 97 abort ();
62bad7cd 98#endif
86951993 99
62bad7cd 100#if (ATOMIC_INT_LOCK_FREE != 1 && ATOMIC_INT_LOCK_FREE != 2)
86951993 101 abort ();
62bad7cd 102#endif
86951993 103
62bad7cd 104#if (ATOMIC_LONG_LOCK_FREE != 1 && ATOMIC_LONG_LOCK_FREE != 2)
86951993 105 abort ();
62bad7cd 106#endif
86951993 107
62bad7cd 108#if (ATOMIC_LLONG_LOCK_FREE != 1 && ATOMIC_LLONG_LOCK_FREE != 2)
86951993 109 abort ();
62bad7cd 110#endif
86951993 111
62bad7cd 112#if (ATOMIC_POINTER_LOCK_FREE != 1 && ATOMIC_POINTER_LOCK_FREE != 2)
86951993 113 abort ();
62bad7cd 114#endif
d466a7e2 115}