1// RUN: %clang_cc1 -std=c++98 -E %s -o - | FileCheck %s 2// RUN: %clang_cc1 -std=c++11 -E %s -o - | FileCheck %s --check-prefix=CHECK11 3 4// CHECK: c_static_assert 5#if __has_extension(c_static_assert) 6int c_static_assert(); 7#endif 8 9// CHECK: c_generic_selections 10#if __has_extension(c_generic_selections) 11int c_generic_selections(); 12#endif 13 14// CHECK: has_deleted_functions 15#if __has_extension(cxx_deleted_functions) 16int has_deleted_functions(); 17#endif 18 19// CHECK: has_inline_namespaces 20#if __has_extension(cxx_inline_namespaces) 21int has_inline_namespaces(); 22#endif 23 24// CHECK: has_override_control 25#if __has_extension(cxx_override_control) 26int has_override_control(); 27#endif 28 29// CHECK: has_range_for 30#if __has_extension(cxx_range_for) 31int has_range_for(); 32#endif 33 34// CHECK: has_reference_qualified_functions 35#if __has_extension(cxx_reference_qualified_functions) 36int has_reference_qualified_functions(); 37#endif 38 39// CHECK: has_rvalue_references 40#if __has_extension(cxx_rvalue_references) 41int has_rvalue_references(); 42#endif 43 44// CHECK: has_variadic_templates 45#if __has_extension(cxx_variadic_templates) 46int has_variadic_templates(); 47#endif 48 49// CHECK: has_local_type_template_args 50#if __has_extension(cxx_local_type_template_args) 51int has_local_type_template_args(); 52#endif 53 54// CHECK: has_binary_literals 55#if __has_extension(cxx_binary_literals) 56int has_binary_literals(); 57#endif 58 59// CHECK: has_variable_templates 60#if __has_extension(cxx_variable_templates) 61int has_variable_templates(); 62#endif 63 64// CHECK-NOT: has_init_captures 65// CHECK11: has_init_captures 66#if __has_extension(cxx_init_captures) 67int has_init_captures(); 68#endif 69