13f65f718SMark de Wever //===----------------------------------------------------------------------===//
23f65f718SMark de Wever //
33f65f718SMark de Wever // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
43f65f718SMark de Wever // See https://llvm.org/LICENSE.txt for license information.
53f65f718SMark de Wever // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
63f65f718SMark de Wever //
73f65f718SMark de Wever //===----------------------------------------------------------------------===//
83f65f718SMark de Wever //
93f65f718SMark de Wever // WARNING: This test was generated by generate_feature_test_macro_components.py
103f65f718SMark de Wever // and should not be edited manually.
113f65f718SMark de Wever //
123f65f718SMark de Wever // clang-format off
133f65f718SMark de Wever 
14*1cf970dbSKonstantin Varlamov // UNSUPPORTED: no-filesystem
15*1cf970dbSKonstantin Varlamov 
163f65f718SMark de Wever // <print>
173f65f718SMark de Wever 
183f65f718SMark de Wever // Test the feature test macros defined by <print>
193f65f718SMark de Wever 
203f65f718SMark de Wever /*  Constant           Value
213f65f718SMark de Wever     __cpp_lib_print    202207L [C++23]
223f65f718SMark de Wever */
233f65f718SMark de Wever 
243f65f718SMark de Wever #include <print>
253f65f718SMark de Wever #include "test_macros.h"
263f65f718SMark de Wever 
273f65f718SMark de Wever #if TEST_STD_VER < 14
283f65f718SMark de Wever 
293f65f718SMark de Wever # ifdef __cpp_lib_print
303f65f718SMark de Wever #   error "__cpp_lib_print should not be defined before c++23"
313f65f718SMark de Wever # endif
323f65f718SMark de Wever 
333f65f718SMark de Wever #elif TEST_STD_VER == 14
343f65f718SMark de Wever 
353f65f718SMark de Wever # ifdef __cpp_lib_print
363f65f718SMark de Wever #   error "__cpp_lib_print should not be defined before c++23"
373f65f718SMark de Wever # endif
383f65f718SMark de Wever 
393f65f718SMark de Wever #elif TEST_STD_VER == 17
403f65f718SMark de Wever 
413f65f718SMark de Wever # ifdef __cpp_lib_print
423f65f718SMark de Wever #   error "__cpp_lib_print should not be defined before c++23"
433f65f718SMark de Wever # endif
443f65f718SMark de Wever 
453f65f718SMark de Wever #elif TEST_STD_VER == 20
463f65f718SMark de Wever 
473f65f718SMark de Wever # ifdef __cpp_lib_print
483f65f718SMark de Wever #   error "__cpp_lib_print should not be defined before c++23"
493f65f718SMark de Wever # endif
503f65f718SMark de Wever 
513f65f718SMark de Wever #elif TEST_STD_VER == 23
523f65f718SMark de Wever 
533f65f718SMark de Wever # ifndef __cpp_lib_print
543f65f718SMark de Wever #   error "__cpp_lib_print should be defined in c++23"
553f65f718SMark de Wever # endif
563f65f718SMark de Wever # if __cpp_lib_print != 202207L
573f65f718SMark de Wever #   error "__cpp_lib_print should have the value 202207L in c++23"
583f65f718SMark de Wever # endif
593f65f718SMark de Wever 
603f65f718SMark de Wever #elif TEST_STD_VER > 23
613f65f718SMark de Wever 
623f65f718SMark de Wever # ifndef __cpp_lib_print
633f65f718SMark de Wever #   error "__cpp_lib_print should be defined in c++26"
643f65f718SMark de Wever # endif
653f65f718SMark de Wever # if __cpp_lib_print != 202207L
663f65f718SMark de Wever #   error "__cpp_lib_print should have the value 202207L in c++26"
673f65f718SMark de Wever # endif
683f65f718SMark de Wever 
693f65f718SMark de Wever #endif // TEST_STD_VER > 23
703f65f718SMark de Wever 
71