1 // RUN: %clang_cc1 -E -std=c++11 %s -o - | FileCheck --check-prefix=CHECK-0X %s 2 // RUN: %clang_cc1 -E %s -o - | FileCheck --check-prefix=CHECK-NO-0X %s 3 4 #if __has_feature(cxx_atomic) 5 int has_atomic(); 6 #else 7 int no_atomic(); 8 #endif 9 10 // CHECK-0X: has_atomic 11 // CHECK-NO-0X: no_atomic 12 13 #if __has_feature(cxx_lambdas) 14 int has_lambdas(); 15 #else 16 int no_lambdas(); 17 #endif 18 19 // CHECK-0X: has_lambdas 20 // CHECK-NO-0X: no_lambdas 21 22 23 #if __has_feature(cxx_nullptr) 24 int has_nullptr(); 25 #else 26 int no_nullptr(); 27 #endif 28 29 // CHECK-0X: has_nullptr 30 // CHECK-NO-0X: no_nullptr 31 32 33 #if __has_feature(cxx_decltype) 34 int has_decltype(); 35 #else 36 int no_decltype(); 37 #endif 38 39 // CHECK-0X: has_decltype 40 // CHECK-NO-0X: no_decltype 41 42 43 #if __has_feature(cxx_decltype_incomplete_return_types) 44 int has_decltype_incomplete_return_types(); 45 #else 46 int no_decltype_incomplete_return_types(); 47 #endif 48 49 // CHECK-0X: has_decltype_incomplete_return_types 50 // CHECK-NO-0X: no_decltype_incomplete_return_types 51 52 53 #if __has_feature(cxx_auto_type) 54 int has_auto_type(); 55 #else 56 int no_auto_type(); 57 #endif 58 59 // CHECK-0X: has_auto_type 60 // CHECK-NO-0X: no_auto_type 61 62 63 #if __has_feature(cxx_trailing_return) 64 int has_trailing_return(); 65 #else 66 int no_trailing_return(); 67 #endif 68 69 // CHECK-0X: has_trailing_return 70 // CHECK-NO-0X: no_trailing_return 71 72 73 #if __has_feature(cxx_attributes) 74 int has_attributes(); 75 #else 76 int no_attributes(); 77 #endif 78 79 // CHECK-0X: has_attributes 80 // CHECK-NO-0X: no_attributes 81 82 83 #if __has_feature(cxx_static_assert) 84 int has_static_assert(); 85 #else 86 int no_static_assert(); 87 #endif 88 89 // CHECK-0X: has_static_assert 90 // CHECK-NO-0X: no_static_assert 91 92 #if __has_feature(cxx_deleted_functions) 93 int has_deleted_functions(); 94 #else 95 int no_deleted_functions(); 96 #endif 97 98 // CHECK-0X: has_deleted_functions 99 // CHECK-NO-0X: no_deleted_functions 100 101 #if __has_feature(cxx_defaulted_functions) 102 int has_defaulted_functions(); 103 #else 104 int no_defaulted_functions(); 105 #endif 106 107 // CHECK-0X: has_defaulted_functions 108 // CHECK-NO-0X: no_defaulted_functions 109 110 #if __has_feature(cxx_rvalue_references) 111 int has_rvalue_references(); 112 #else 113 int no_rvalue_references(); 114 #endif 115 116 // CHECK-0X: has_rvalue_references 117 // CHECK-NO-0X: no_rvalue_references 118 119 120 #if __has_feature(cxx_variadic_templates) 121 int has_variadic_templates(); 122 #else 123 int no_variadic_templates(); 124 #endif 125 126 // CHECK-0X: has_variadic_templates 127 // CHECK-NO-0X: no_variadic_templates 128 129 130 #if __has_feature(cxx_inline_namespaces) 131 int has_inline_namespaces(); 132 #else 133 int no_inline_namespaces(); 134 #endif 135 136 // CHECK-0X: has_inline_namespaces 137 // CHECK-NO-0X: no_inline_namespaces 138 139 140 #if __has_feature(cxx_range_for) 141 int has_range_for(); 142 #else 143 int no_range_for(); 144 #endif 145 146 // CHECK-0X: has_range_for 147 // CHECK-NO-0X: no_range_for 148 149 150 #if __has_feature(cxx_reference_qualified_functions) 151 int has_reference_qualified_functions(); 152 #else 153 int no_reference_qualified_functions(); 154 #endif 155 156 // CHECK-0X: has_reference_qualified_functions 157 // CHECK-NO-0X: no_reference_qualified_functions 158 159 #if __has_feature(cxx_default_function_template_args) 160 int has_default_function_template_args(); 161 #else 162 int no_default_function_template_args(); 163 #endif 164 165 // CHECK-0X: has_default_function_template_args 166 // CHECK-NO-0X: no_default_function_template_args 167 168 #if __has_feature(cxx_noexcept) 169 int has_noexcept(); 170 #else 171 int no_noexcept(); 172 #endif 173 174 // CHECK-0X: has_noexcept 175 // CHECK-NO-0X: no_noexcept 176 177 #if __has_feature(cxx_override_control) 178 int has_override_control(); 179 #else 180 int no_override_control(); 181 #endif 182 183 // CHECK-0X: has_override_control 184 // CHECK-NO-0X: no_override_control 185 186 #if __has_feature(cxx_alias_templates) 187 int has_alias_templates(); 188 #else 189 int no_alias_templates(); 190 #endif 191 192 // CHECK-0X: has_alias_templates 193 // CHECK-NO-0X: no_alias_templates 194 195 #if __has_feature(cxx_implicit_moves) 196 int has_implicit_moves(); 197 #else 198 int no_implicit_moves(); 199 #endif 200 201 // CHECK-0X: has_implicit_moves 202 // CHECK-NO-0X: no_implicit_moves 203 204 #if __has_feature(cxx_alignas) 205 int has_alignas(); 206 #else 207 int no_alignas(); 208 #endif 209 210 // CHECK-0X: has_alignas 211 // CHECK-NO-0X: no_alignas 212 213 #if __has_feature(cxx_raw_string_literals) 214 int has_raw_string_literals(); 215 #else 216 int no_raw_string_literals(); 217 #endif 218 219 // CHECK-0X: has_raw_string_literals 220 // CHECK-NO-0X: no_raw_string_literals 221 222 #if __has_feature(cxx_unicode_literals) 223 int has_unicode_literals(); 224 #else 225 int no_unicode_literals(); 226 #endif 227 228 // CHECK-0X: has_unicode_literals 229 // CHECK-NO-0X: no_unicode_literals 230 231 #if __has_feature(cxx_constexpr) 232 int has_constexpr(); 233 #else 234 int no_constexpr(); 235 #endif 236 237 // CHECK-0X: has_constexpr 238 // CHECK-NO-0X: no_constexpr 239 240 #if __has_feature(cxx_generalized_initializers) 241 int has_generalized_initializers(); 242 #else 243 int no_generalized_initializers(); 244 #endif 245 246 // CHECK-0X: has_generalized_initializers 247 // CHECK-NO-0X: no_generalized_initializers 248 249 #if __has_feature(cxx_unrestricted_unions) 250 int has_unrestricted_unions(); 251 #else 252 int no_unrestricted_unions(); 253 #endif 254 255 // CHECK-0X: has_unrestricted_unions 256 // CHECK-NO-0X: no_unrestricted_unions 257 258 #if __has_feature(cxx_user_literals) 259 int has_user_literals(); 260 #else 261 int no_user_literals(); 262 #endif 263 264 // CHECK-0X: has_user_literals 265 // CHECK-NO-0X: no_user_literals 266 267 #if __has_feature(cxx_local_type_template_args) 268 int has_local_type_template_args(); 269 #else 270 int no_local_type_template_args(); 271 #endif 272 273 // CHECK-0X: has_local_type_template_args 274 // CHECK-NO-0X: no_local_type_template_args 275