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_local_type_template_args
45#if __has_extension(cxx_local_type_template_args)
46int has_local_type_template_args();
47#endif
48
49// CHECK: has_binary_literals
50#if __has_extension(cxx_binary_literals)
51int has_binary_literals();
52#endif
53
54// CHECK: has_variable_templates
55#if __has_extension(cxx_variable_templates)
56int has_variable_templates();
57#endif
58
59// CHECK-NOT: has_init_captures
60// CHECK11: has_init_captures
61#if __has_extension(cxx_init_captures)
62int has_init_captures();
63#endif
64