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 14a7f9895cSLouis 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 2171400505SMark de Wever __cpp_lib_stdatomic_h 202011L [C++23] 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 3071400505SMark de Wever # error "__cpp_lib_stdatomic_h should not be defined before c++23" 31586efd52SLouis Dionne # endif 32586efd52SLouis Dionne 33586efd52SLouis Dionne #elif TEST_STD_VER == 14 34586efd52SLouis Dionne 35586efd52SLouis Dionne # ifdef __cpp_lib_stdatomic_h 3671400505SMark de Wever # error "__cpp_lib_stdatomic_h should not be defined before c++23" 37586efd52SLouis Dionne # endif 38586efd52SLouis Dionne 39586efd52SLouis Dionne #elif TEST_STD_VER == 17 40586efd52SLouis Dionne 41586efd52SLouis Dionne # ifdef __cpp_lib_stdatomic_h 4271400505SMark de Wever # error "__cpp_lib_stdatomic_h should not be defined before c++23" 43586efd52SLouis Dionne # endif 44586efd52SLouis Dionne 45586efd52SLouis Dionne #elif TEST_STD_VER == 20 46586efd52SLouis Dionne 47586efd52SLouis Dionne # ifdef __cpp_lib_stdatomic_h 4871400505SMark de Wever # error "__cpp_lib_stdatomic_h should not be defined before c++23" 49586efd52SLouis Dionne # endif 50586efd52SLouis Dionne 51*00c97cbcSMark de Wever #elif TEST_STD_VER == 23 52586efd52SLouis Dionne 53586efd52SLouis Dionne # ifndef __cpp_lib_stdatomic_h 5471400505SMark de Wever # error "__cpp_lib_stdatomic_h should be defined in c++23" 55586efd52SLouis Dionne # endif 56586efd52SLouis Dionne # if __cpp_lib_stdatomic_h != 202011L 5771400505SMark de Wever # error "__cpp_lib_stdatomic_h should have the value 202011L in c++23" 58586efd52SLouis Dionne # endif 59586efd52SLouis Dionne 60*00c97cbcSMark de Wever #elif TEST_STD_VER > 23 61*00c97cbcSMark de Wever 62*00c97cbcSMark de Wever # ifndef __cpp_lib_stdatomic_h 63*00c97cbcSMark de Wever # error "__cpp_lib_stdatomic_h should be defined in c++26" 64*00c97cbcSMark de Wever # endif 65*00c97cbcSMark de Wever # if __cpp_lib_stdatomic_h != 202011L 66*00c97cbcSMark de Wever # error "__cpp_lib_stdatomic_h should have the value 202011L in c++26" 67*00c97cbcSMark de Wever # endif 68*00c97cbcSMark de Wever 69*00c97cbcSMark de Wever #endif // TEST_STD_VER > 23 70586efd52SLouis Dionne 71