12c6217f2SLouis Dionne //===----------------------------------------------------------------------===//
22c6217f2SLouis Dionne //
32c6217f2SLouis Dionne // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
42c6217f2SLouis Dionne // See https://llvm.org/LICENSE.txt for license information.
52c6217f2SLouis Dionne // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
62c6217f2SLouis Dionne //
72c6217f2SLouis Dionne //===----------------------------------------------------------------------===//
82c6217f2SLouis Dionne //
92c6217f2SLouis Dionne // WARNING: This test was generated by generate_feature_test_macro_components.py
102c6217f2SLouis Dionne // and should not be edited manually.
112c6217f2SLouis Dionne //
122c6217f2SLouis Dionne // clang-format off
132c6217f2SLouis Dionne 
142c6217f2SLouis Dionne // <chrono>
152c6217f2SLouis Dionne 
162c6217f2SLouis Dionne // Test the feature test macros defined by <chrono>
172c6217f2SLouis Dionne 
182c6217f2SLouis Dionne /*  Constant                 Value
192c6217f2SLouis Dionne     __cpp_lib_chrono         201611L [C++17]
202c6217f2SLouis Dionne     __cpp_lib_chrono_udls    201304L [C++14]
212c6217f2SLouis Dionne */
222c6217f2SLouis Dionne 
232c6217f2SLouis Dionne #include <chrono>
242c6217f2SLouis Dionne #include "test_macros.h"
252c6217f2SLouis Dionne 
262c6217f2SLouis Dionne #if TEST_STD_VER < 14
272c6217f2SLouis Dionne 
282c6217f2SLouis Dionne # ifdef __cpp_lib_chrono
292c6217f2SLouis Dionne #   error "__cpp_lib_chrono should not be defined before c++17"
302c6217f2SLouis Dionne # endif
312c6217f2SLouis Dionne 
322c6217f2SLouis Dionne # ifdef __cpp_lib_chrono_udls
332c6217f2SLouis Dionne #   error "__cpp_lib_chrono_udls should not be defined before c++14"
342c6217f2SLouis Dionne # endif
352c6217f2SLouis Dionne 
362c6217f2SLouis Dionne #elif TEST_STD_VER == 14
372c6217f2SLouis Dionne 
382c6217f2SLouis Dionne # ifdef __cpp_lib_chrono
392c6217f2SLouis Dionne #   error "__cpp_lib_chrono should not be defined before c++17"
402c6217f2SLouis Dionne # endif
412c6217f2SLouis Dionne 
422c6217f2SLouis Dionne # ifndef __cpp_lib_chrono_udls
432c6217f2SLouis Dionne #   error "__cpp_lib_chrono_udls should be defined in c++14"
442c6217f2SLouis Dionne # endif
452c6217f2SLouis Dionne # if __cpp_lib_chrono_udls != 201304L
462c6217f2SLouis Dionne #   error "__cpp_lib_chrono_udls should have the value 201304L in c++14"
472c6217f2SLouis Dionne # endif
482c6217f2SLouis Dionne 
492c6217f2SLouis Dionne #elif TEST_STD_VER == 17
502c6217f2SLouis Dionne 
512c6217f2SLouis Dionne # ifndef __cpp_lib_chrono
522c6217f2SLouis Dionne #   error "__cpp_lib_chrono should be defined in c++17"
532c6217f2SLouis Dionne # endif
542c6217f2SLouis Dionne # if __cpp_lib_chrono != 201611L
552c6217f2SLouis Dionne #   error "__cpp_lib_chrono should have the value 201611L in c++17"
562c6217f2SLouis Dionne # endif
572c6217f2SLouis Dionne 
582c6217f2SLouis Dionne # ifndef __cpp_lib_chrono_udls
592c6217f2SLouis Dionne #   error "__cpp_lib_chrono_udls should be defined in c++17"
602c6217f2SLouis Dionne # endif
612c6217f2SLouis Dionne # if __cpp_lib_chrono_udls != 201304L
622c6217f2SLouis Dionne #   error "__cpp_lib_chrono_udls should have the value 201304L in c++17"
632c6217f2SLouis Dionne # endif
642c6217f2SLouis Dionne 
652c6217f2SLouis Dionne #elif TEST_STD_VER == 20
662c6217f2SLouis Dionne 
672c6217f2SLouis Dionne # ifndef __cpp_lib_chrono
682c6217f2SLouis Dionne #   error "__cpp_lib_chrono should be defined in c++20"
692c6217f2SLouis Dionne # endif
702c6217f2SLouis Dionne # if __cpp_lib_chrono != 201611L
712c6217f2SLouis Dionne #   error "__cpp_lib_chrono should have the value 201611L in c++20"
722c6217f2SLouis Dionne # endif
732c6217f2SLouis Dionne 
742c6217f2SLouis Dionne # ifndef __cpp_lib_chrono_udls
752c6217f2SLouis Dionne #   error "__cpp_lib_chrono_udls should be defined in c++20"
762c6217f2SLouis Dionne # endif
772c6217f2SLouis Dionne # if __cpp_lib_chrono_udls != 201304L
782c6217f2SLouis Dionne #   error "__cpp_lib_chrono_udls should have the value 201304L in c++20"
792c6217f2SLouis Dionne # endif
802c6217f2SLouis Dionne 
81*00c97cbcSMark de Wever #elif TEST_STD_VER == 23
822c6217f2SLouis Dionne 
832c6217f2SLouis Dionne # ifndef __cpp_lib_chrono
8471400505SMark de Wever #   error "__cpp_lib_chrono should be defined in c++23"
852c6217f2SLouis Dionne # endif
862c6217f2SLouis Dionne # if __cpp_lib_chrono != 201611L
8771400505SMark de Wever #   error "__cpp_lib_chrono should have the value 201611L in c++23"
882c6217f2SLouis Dionne # endif
892c6217f2SLouis Dionne 
902c6217f2SLouis Dionne # ifndef __cpp_lib_chrono_udls
9171400505SMark de Wever #   error "__cpp_lib_chrono_udls should be defined in c++23"
922c6217f2SLouis Dionne # endif
932c6217f2SLouis Dionne # if __cpp_lib_chrono_udls != 201304L
9471400505SMark de Wever #   error "__cpp_lib_chrono_udls should have the value 201304L in c++23"
952c6217f2SLouis Dionne # endif
962c6217f2SLouis Dionne 
97*00c97cbcSMark de Wever #elif TEST_STD_VER > 23
98*00c97cbcSMark de Wever 
99*00c97cbcSMark de Wever # ifndef __cpp_lib_chrono
100*00c97cbcSMark de Wever #   error "__cpp_lib_chrono should be defined in c++26"
101*00c97cbcSMark de Wever # endif
102*00c97cbcSMark de Wever # if __cpp_lib_chrono != 201611L
103*00c97cbcSMark de Wever #   error "__cpp_lib_chrono should have the value 201611L in c++26"
104*00c97cbcSMark de Wever # endif
105*00c97cbcSMark de Wever 
106*00c97cbcSMark de Wever # ifndef __cpp_lib_chrono_udls
107*00c97cbcSMark de Wever #   error "__cpp_lib_chrono_udls should be defined in c++26"
108*00c97cbcSMark de Wever # endif
109*00c97cbcSMark de Wever # if __cpp_lib_chrono_udls != 201304L
110*00c97cbcSMark de Wever #   error "__cpp_lib_chrono_udls should have the value 201304L in c++26"
111*00c97cbcSMark de Wever # endif
112*00c97cbcSMark de Wever 
113*00c97cbcSMark de Wever #endif // TEST_STD_VER > 23
1142c6217f2SLouis Dionne 
115