new.version.pass.cpp (3233B)
1 //===----------------------------------------------------------------------===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is dual licensed under the MIT and the University of Illinois Open 6 // Source Licenses. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 // 10 // WARNING: This test was generated by generate_feature_test_macro_components.py 11 // and should not be edited manually. 12 13 // <new> 14 15 // Test the feature test macros defined by <new> 16 17 /* Constant Value 18 __cpp_lib_destroying_delete 201806L [C++2a] 19 __cpp_lib_hardware_interference_size 201703L [C++17] 20 __cpp_lib_launder 201606L [C++17] 21 */ 22 23 #include <new> 24 #include "test_macros.h" 25 26 #if TEST_STD_VER < 14 27 28 # ifdef __cpp_lib_destroying_delete 29 # error "__cpp_lib_destroying_delete should not be defined before c++2a" 30 # endif 31 32 # ifdef __cpp_lib_hardware_interference_size 33 # error "__cpp_lib_hardware_interference_size should not be defined before c++17" 34 # endif 35 36 # ifdef __cpp_lib_launder 37 # error "__cpp_lib_launder should not be defined before c++17" 38 # endif 39 40 #elif TEST_STD_VER == 14 41 42 # ifdef __cpp_lib_destroying_delete 43 # error "__cpp_lib_destroying_delete should not be defined before c++2a" 44 # endif 45 46 # ifdef __cpp_lib_hardware_interference_size 47 # error "__cpp_lib_hardware_interference_size should not be defined before c++17" 48 # endif 49 50 # ifdef __cpp_lib_launder 51 # error "__cpp_lib_launder should not be defined before c++17" 52 # endif 53 54 #elif TEST_STD_VER == 17 55 56 # ifdef __cpp_lib_destroying_delete 57 # error "__cpp_lib_destroying_delete should not be defined before c++2a" 58 # endif 59 60 # ifndef __cpp_lib_hardware_interference_size 61 # error "__cpp_lib_hardware_interference_size should be defined in c++17" 62 # endif 63 # if __cpp_lib_hardware_interference_size != 201703L 64 # error "__cpp_lib_hardware_interference_size should have the value 201703L in c++17" 65 # endif 66 67 # ifndef __cpp_lib_launder 68 # error "__cpp_lib_launder should be defined in c++17" 69 # endif 70 # if __cpp_lib_launder != 201606L 71 # error "__cpp_lib_launder should have the value 201606L in c++17" 72 # endif 73 74 #elif TEST_STD_VER > 17 75 76 # if !defined(_LIBCPP_VERSION) 77 # ifndef __cpp_lib_destroying_delete 78 # error "__cpp_lib_destroying_delete should be defined in c++2a" 79 # endif 80 # if __cpp_lib_destroying_delete != 201806L 81 # error "__cpp_lib_destroying_delete should have the value 201806L in c++2a" 82 # endif 83 # else // _LIBCPP_VERSION 84 # ifdef __cpp_lib_destroying_delete 85 # error "__cpp_lib_destroying_delete should not be defined because it is unimplemented in libc++!" 86 # endif 87 # endif 88 89 # ifndef __cpp_lib_hardware_interference_size 90 # error "__cpp_lib_hardware_interference_size should be defined in c++2a" 91 # endif 92 # if __cpp_lib_hardware_interference_size != 201703L 93 # error "__cpp_lib_hardware_interference_size should have the value 201703L in c++2a" 94 # endif 95 96 # ifndef __cpp_lib_launder 97 # error "__cpp_lib_launder should be defined in c++2a" 98 # endif 99 # if __cpp_lib_launder != 201606L 100 # error "__cpp_lib_launder should have the value 201606L in c++2a" 101 # endif 102 103 #endif // TEST_STD_VER > 17 104 105 int main() {}