1586efd52SLouis Dionne //===----------------------------------------------------------------------===//
2586efd52SLouis Dionne //
3586efd52SLouis Dionne // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4586efd52SLouis Dionne // See https://llvm.org/LICENSE.txt for license information.
5586efd52SLouis Dionne // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6586efd52SLouis Dionne //
7586efd52SLouis Dionne //===----------------------------------------------------------------------===//
8586efd52SLouis Dionne //
9586efd52SLouis Dionne // WARNING: This test was generated by generate_feature_test_macro_components.py
10586efd52SLouis Dionne // and should not be edited manually.
11586efd52SLouis Dionne //
12586efd52SLouis Dionne // clang-format off
13586efd52SLouis Dionne 
14*a7f9895cSLouis Dionne // UNSUPPORTED: no-threads
15586efd52SLouis Dionne 
16586efd52SLouis Dionne // <stdatomic.h>
17586efd52SLouis Dionne 
18586efd52SLouis Dionne // Test the feature test macros defined by <stdatomic.h>
19586efd52SLouis Dionne 
20586efd52SLouis Dionne /*  Constant                 Value
21586efd52SLouis Dionne     __cpp_lib_stdatomic_h    202011L [C++2b]
22586efd52SLouis Dionne */
23586efd52SLouis Dionne 
24586efd52SLouis Dionne #include <stdatomic.h>
25586efd52SLouis Dionne #include "test_macros.h"
26586efd52SLouis Dionne 
27586efd52SLouis Dionne #if TEST_STD_VER < 14
28586efd52SLouis Dionne 
29586efd52SLouis Dionne # ifdef __cpp_lib_stdatomic_h
30586efd52SLouis Dionne #   error "__cpp_lib_stdatomic_h should not be defined before c++2b"
31586efd52SLouis Dionne # endif
32586efd52SLouis Dionne 
33586efd52SLouis Dionne #elif TEST_STD_VER == 14
34586efd52SLouis Dionne 
35586efd52SLouis Dionne # ifdef __cpp_lib_stdatomic_h
36586efd52SLouis Dionne #   error "__cpp_lib_stdatomic_h should not be defined before c++2b"
37586efd52SLouis Dionne # endif
38586efd52SLouis Dionne 
39586efd52SLouis Dionne #elif TEST_STD_VER == 17
40586efd52SLouis Dionne 
41586efd52SLouis Dionne # ifdef __cpp_lib_stdatomic_h
42586efd52SLouis Dionne #   error "__cpp_lib_stdatomic_h should not be defined before c++2b"
43586efd52SLouis Dionne # endif
44586efd52SLouis Dionne 
45586efd52SLouis Dionne #elif TEST_STD_VER == 20
46586efd52SLouis Dionne 
47586efd52SLouis Dionne # ifdef __cpp_lib_stdatomic_h
48586efd52SLouis Dionne #   error "__cpp_lib_stdatomic_h should not be defined before c++2b"
49586efd52SLouis Dionne # endif
50586efd52SLouis Dionne 
51586efd52SLouis Dionne #elif TEST_STD_VER > 20
52586efd52SLouis Dionne 
53586efd52SLouis Dionne # ifndef __cpp_lib_stdatomic_h
54586efd52SLouis Dionne #   error "__cpp_lib_stdatomic_h should be defined in c++2b"
55586efd52SLouis Dionne # endif
56586efd52SLouis Dionne # if __cpp_lib_stdatomic_h != 202011L
57586efd52SLouis Dionne #   error "__cpp_lib_stdatomic_h should have the value 202011L in c++2b"
58586efd52SLouis Dionne # endif
59586efd52SLouis Dionne 
60586efd52SLouis Dionne #endif // TEST_STD_VER > 20
61586efd52SLouis Dionne 
62