xref: /minix3/external/bsd/llvm/dist/clang/test/Lexer/has_feature_cxx0x.cpp (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1f4a2713aSLionel Sambuc // RUN: %clang_cc1 -E -triple x86_64-linux-gnu -std=c++11 %s -o - | FileCheck --check-prefix=CHECK-11 %s
2f4a2713aSLionel Sambuc // RUN: %clang_cc1 -E -triple armv7-apple-darwin -std=c++11 %s -o - | FileCheck --check-prefix=CHECK-NO-TLS %s
3f4a2713aSLionel Sambuc // RUN: %clang_cc1 -E -triple x86_64-linux-gnu %s -o - | FileCheck --check-prefix=CHECK-NO-11 %s
4f4a2713aSLionel Sambuc // RUN: %clang_cc1 -E -triple x86_64-linux-gnu -std=c++1y %s -o - | FileCheck --check-prefix=CHECK-1Y %s
5f4a2713aSLionel Sambuc 
6f4a2713aSLionel Sambuc #if __has_feature(cxx_atomic)
7f4a2713aSLionel Sambuc int has_atomic();
8f4a2713aSLionel Sambuc #else
9f4a2713aSLionel Sambuc int no_atomic();
10f4a2713aSLionel Sambuc #endif
11f4a2713aSLionel Sambuc 
12f4a2713aSLionel Sambuc // CHECK-1Y: has_atomic
13f4a2713aSLionel Sambuc // CHECK-11: has_atomic
14f4a2713aSLionel Sambuc // CHECK-NO-11: no_atomic
15f4a2713aSLionel Sambuc 
16f4a2713aSLionel Sambuc #if __has_feature(cxx_lambdas)
17f4a2713aSLionel Sambuc int has_lambdas();
18f4a2713aSLionel Sambuc #else
19f4a2713aSLionel Sambuc int no_lambdas();
20f4a2713aSLionel Sambuc #endif
21f4a2713aSLionel Sambuc 
22f4a2713aSLionel Sambuc // CHECK-1Y: has_lambdas
23f4a2713aSLionel Sambuc // CHECK-11: has_lambdas
24f4a2713aSLionel Sambuc // CHECK-NO-11: no_lambdas
25f4a2713aSLionel Sambuc 
26f4a2713aSLionel Sambuc 
27f4a2713aSLionel Sambuc #if __has_feature(cxx_nullptr)
28f4a2713aSLionel Sambuc int has_nullptr();
29f4a2713aSLionel Sambuc #else
30f4a2713aSLionel Sambuc int no_nullptr();
31f4a2713aSLionel Sambuc #endif
32f4a2713aSLionel Sambuc 
33f4a2713aSLionel Sambuc // CHECK-1Y: has_nullptr
34f4a2713aSLionel Sambuc // CHECK-11: has_nullptr
35f4a2713aSLionel Sambuc // CHECK-NO-11: no_nullptr
36f4a2713aSLionel Sambuc 
37f4a2713aSLionel Sambuc 
38f4a2713aSLionel Sambuc #if __has_feature(cxx_decltype)
39f4a2713aSLionel Sambuc int has_decltype();
40f4a2713aSLionel Sambuc #else
41f4a2713aSLionel Sambuc int no_decltype();
42f4a2713aSLionel Sambuc #endif
43f4a2713aSLionel Sambuc 
44f4a2713aSLionel Sambuc // CHECK-1Y: has_decltype
45f4a2713aSLionel Sambuc // CHECK-11: has_decltype
46f4a2713aSLionel Sambuc // CHECK-NO-11: no_decltype
47f4a2713aSLionel Sambuc 
48f4a2713aSLionel Sambuc 
49f4a2713aSLionel Sambuc #if __has_feature(cxx_decltype_incomplete_return_types)
50f4a2713aSLionel Sambuc int has_decltype_incomplete_return_types();
51f4a2713aSLionel Sambuc #else
52f4a2713aSLionel Sambuc int no_decltype_incomplete_return_types();
53f4a2713aSLionel Sambuc #endif
54f4a2713aSLionel Sambuc 
55f4a2713aSLionel Sambuc // CHECK-1Y: has_decltype_incomplete_return_types
56f4a2713aSLionel Sambuc // CHECK-11: has_decltype_incomplete_return_types
57f4a2713aSLionel Sambuc // CHECK-NO-11: no_decltype_incomplete_return_types
58f4a2713aSLionel Sambuc 
59f4a2713aSLionel Sambuc 
60f4a2713aSLionel Sambuc #if __has_feature(cxx_auto_type)
61f4a2713aSLionel Sambuc int has_auto_type();
62f4a2713aSLionel Sambuc #else
63f4a2713aSLionel Sambuc int no_auto_type();
64f4a2713aSLionel Sambuc #endif
65f4a2713aSLionel Sambuc 
66f4a2713aSLionel Sambuc // CHECK-1Y: has_auto_type
67f4a2713aSLionel Sambuc // CHECK-11: has_auto_type
68f4a2713aSLionel Sambuc // CHECK-NO-11: no_auto_type
69f4a2713aSLionel Sambuc 
70f4a2713aSLionel Sambuc 
71f4a2713aSLionel Sambuc #if __has_feature(cxx_trailing_return)
72f4a2713aSLionel Sambuc int has_trailing_return();
73f4a2713aSLionel Sambuc #else
74f4a2713aSLionel Sambuc int no_trailing_return();
75f4a2713aSLionel Sambuc #endif
76f4a2713aSLionel Sambuc 
77f4a2713aSLionel Sambuc // CHECK-1Y: has_trailing_return
78f4a2713aSLionel Sambuc // CHECK-11: has_trailing_return
79f4a2713aSLionel Sambuc // CHECK-NO-11: no_trailing_return
80f4a2713aSLionel Sambuc 
81f4a2713aSLionel Sambuc 
82f4a2713aSLionel Sambuc #if __has_feature(cxx_attributes)
83f4a2713aSLionel Sambuc int has_attributes();
84f4a2713aSLionel Sambuc #else
85f4a2713aSLionel Sambuc int no_attributes();
86f4a2713aSLionel Sambuc #endif
87f4a2713aSLionel Sambuc 
88f4a2713aSLionel Sambuc // CHECK-1Y: has_attributes
89f4a2713aSLionel Sambuc // CHECK-11: has_attributes
90f4a2713aSLionel Sambuc // CHECK-NO-11: no_attributes
91f4a2713aSLionel Sambuc 
92f4a2713aSLionel Sambuc 
93f4a2713aSLionel Sambuc #if __has_feature(cxx_static_assert)
94f4a2713aSLionel Sambuc int has_static_assert();
95f4a2713aSLionel Sambuc #else
96f4a2713aSLionel Sambuc int no_static_assert();
97f4a2713aSLionel Sambuc #endif
98f4a2713aSLionel Sambuc 
99f4a2713aSLionel Sambuc // CHECK-1Y: has_static_assert
100f4a2713aSLionel Sambuc // CHECK-11: has_static_assert
101f4a2713aSLionel Sambuc // CHECK-NO-11: no_static_assert
102f4a2713aSLionel Sambuc 
103f4a2713aSLionel Sambuc #if __has_feature(cxx_deleted_functions)
104f4a2713aSLionel Sambuc int has_deleted_functions();
105f4a2713aSLionel Sambuc #else
106f4a2713aSLionel Sambuc int no_deleted_functions();
107f4a2713aSLionel Sambuc #endif
108f4a2713aSLionel Sambuc 
109f4a2713aSLionel Sambuc // CHECK-1Y: has_deleted_functions
110f4a2713aSLionel Sambuc // CHECK-11: has_deleted_functions
111f4a2713aSLionel Sambuc // CHECK-NO-11: no_deleted_functions
112f4a2713aSLionel Sambuc 
113f4a2713aSLionel Sambuc #if __has_feature(cxx_defaulted_functions)
114f4a2713aSLionel Sambuc int has_defaulted_functions();
115f4a2713aSLionel Sambuc #else
116f4a2713aSLionel Sambuc int no_defaulted_functions();
117f4a2713aSLionel Sambuc #endif
118f4a2713aSLionel Sambuc 
119f4a2713aSLionel Sambuc // CHECK-1Y: has_defaulted_functions
120f4a2713aSLionel Sambuc // CHECK-11: has_defaulted_functions
121f4a2713aSLionel Sambuc // CHECK-NO-11: no_defaulted_functions
122f4a2713aSLionel Sambuc 
123f4a2713aSLionel Sambuc #if __has_feature(cxx_rvalue_references)
124f4a2713aSLionel Sambuc int has_rvalue_references();
125f4a2713aSLionel Sambuc #else
126f4a2713aSLionel Sambuc int no_rvalue_references();
127f4a2713aSLionel Sambuc #endif
128f4a2713aSLionel Sambuc 
129f4a2713aSLionel Sambuc // CHECK-1Y: has_rvalue_references
130f4a2713aSLionel Sambuc // CHECK-11: has_rvalue_references
131f4a2713aSLionel Sambuc // CHECK-NO-11: no_rvalue_references
132f4a2713aSLionel Sambuc 
133f4a2713aSLionel Sambuc 
134f4a2713aSLionel Sambuc #if __has_feature(cxx_variadic_templates)
135f4a2713aSLionel Sambuc int has_variadic_templates();
136f4a2713aSLionel Sambuc #else
137f4a2713aSLionel Sambuc int no_variadic_templates();
138f4a2713aSLionel Sambuc #endif
139f4a2713aSLionel Sambuc 
140f4a2713aSLionel Sambuc // CHECK-1Y: has_variadic_templates
141f4a2713aSLionel Sambuc // CHECK-11: has_variadic_templates
142f4a2713aSLionel Sambuc // CHECK-NO-11: no_variadic_templates
143f4a2713aSLionel Sambuc 
144f4a2713aSLionel Sambuc 
145f4a2713aSLionel Sambuc #if __has_feature(cxx_inline_namespaces)
146f4a2713aSLionel Sambuc int has_inline_namespaces();
147f4a2713aSLionel Sambuc #else
148f4a2713aSLionel Sambuc int no_inline_namespaces();
149f4a2713aSLionel Sambuc #endif
150f4a2713aSLionel Sambuc 
151f4a2713aSLionel Sambuc // CHECK-1Y: has_inline_namespaces
152f4a2713aSLionel Sambuc // CHECK-11: has_inline_namespaces
153f4a2713aSLionel Sambuc // CHECK-NO-11: no_inline_namespaces
154f4a2713aSLionel Sambuc 
155f4a2713aSLionel Sambuc 
156f4a2713aSLionel Sambuc #if __has_feature(cxx_range_for)
157f4a2713aSLionel Sambuc int has_range_for();
158f4a2713aSLionel Sambuc #else
159f4a2713aSLionel Sambuc int no_range_for();
160f4a2713aSLionel Sambuc #endif
161f4a2713aSLionel Sambuc 
162f4a2713aSLionel Sambuc // CHECK-1Y: has_range_for
163f4a2713aSLionel Sambuc // CHECK-11: has_range_for
164f4a2713aSLionel Sambuc // CHECK-NO-11: no_range_for
165f4a2713aSLionel Sambuc 
166f4a2713aSLionel Sambuc 
167f4a2713aSLionel Sambuc #if __has_feature(cxx_reference_qualified_functions)
168f4a2713aSLionel Sambuc int has_reference_qualified_functions();
169f4a2713aSLionel Sambuc #else
170f4a2713aSLionel Sambuc int no_reference_qualified_functions();
171f4a2713aSLionel Sambuc #endif
172f4a2713aSLionel Sambuc 
173f4a2713aSLionel Sambuc // CHECK-1Y: has_reference_qualified_functions
174f4a2713aSLionel Sambuc // CHECK-11: has_reference_qualified_functions
175f4a2713aSLionel Sambuc // CHECK-NO-11: no_reference_qualified_functions
176f4a2713aSLionel Sambuc 
177f4a2713aSLionel Sambuc #if __has_feature(cxx_default_function_template_args)
178f4a2713aSLionel Sambuc int has_default_function_template_args();
179f4a2713aSLionel Sambuc #else
180f4a2713aSLionel Sambuc int no_default_function_template_args();
181f4a2713aSLionel Sambuc #endif
182f4a2713aSLionel Sambuc 
183f4a2713aSLionel Sambuc // CHECK-1Y: has_default_function_template_args
184f4a2713aSLionel Sambuc // CHECK-11: has_default_function_template_args
185f4a2713aSLionel Sambuc // CHECK-NO-11: no_default_function_template_args
186f4a2713aSLionel Sambuc 
187f4a2713aSLionel Sambuc #if __has_feature(cxx_noexcept)
188f4a2713aSLionel Sambuc int has_noexcept();
189f4a2713aSLionel Sambuc #else
190f4a2713aSLionel Sambuc int no_noexcept();
191f4a2713aSLionel Sambuc #endif
192f4a2713aSLionel Sambuc 
193f4a2713aSLionel Sambuc // CHECK-1Y: has_noexcept
194f4a2713aSLionel Sambuc // CHECK-11: has_noexcept
195f4a2713aSLionel Sambuc // CHECK-NO-11: no_noexcept
196f4a2713aSLionel Sambuc 
197f4a2713aSLionel Sambuc #if __has_feature(cxx_override_control)
198f4a2713aSLionel Sambuc int has_override_control();
199f4a2713aSLionel Sambuc #else
200f4a2713aSLionel Sambuc int no_override_control();
201f4a2713aSLionel Sambuc #endif
202f4a2713aSLionel Sambuc 
203f4a2713aSLionel Sambuc // CHECK-1Y: has_override_control
204f4a2713aSLionel Sambuc // CHECK-11: has_override_control
205f4a2713aSLionel Sambuc // CHECK-NO-11: no_override_control
206f4a2713aSLionel Sambuc 
207f4a2713aSLionel Sambuc #if __has_feature(cxx_alias_templates)
208f4a2713aSLionel Sambuc int has_alias_templates();
209f4a2713aSLionel Sambuc #else
210f4a2713aSLionel Sambuc int no_alias_templates();
211f4a2713aSLionel Sambuc #endif
212f4a2713aSLionel Sambuc 
213f4a2713aSLionel Sambuc // CHECK-1Y: has_alias_templates
214f4a2713aSLionel Sambuc // CHECK-11: has_alias_templates
215f4a2713aSLionel Sambuc // CHECK-NO-11: no_alias_templates
216f4a2713aSLionel Sambuc 
217f4a2713aSLionel Sambuc #if __has_feature(cxx_implicit_moves)
218f4a2713aSLionel Sambuc int has_implicit_moves();
219f4a2713aSLionel Sambuc #else
220f4a2713aSLionel Sambuc int no_implicit_moves();
221f4a2713aSLionel Sambuc #endif
222f4a2713aSLionel Sambuc 
223f4a2713aSLionel Sambuc // CHECK-1Y: has_implicit_moves
224f4a2713aSLionel Sambuc // CHECK-11: has_implicit_moves
225f4a2713aSLionel Sambuc // CHECK-NO-11: no_implicit_moves
226f4a2713aSLionel Sambuc 
227f4a2713aSLionel Sambuc #if __has_feature(cxx_alignas)
228f4a2713aSLionel Sambuc int has_alignas();
229f4a2713aSLionel Sambuc #else
230f4a2713aSLionel Sambuc int no_alignas();
231f4a2713aSLionel Sambuc #endif
232f4a2713aSLionel Sambuc 
233f4a2713aSLionel Sambuc // CHECK-1Y: has_alignas
234f4a2713aSLionel Sambuc // CHECK-11: has_alignas
235f4a2713aSLionel Sambuc // CHECK-NO-11: no_alignas
236f4a2713aSLionel Sambuc 
237*0a6a1f1dSLionel Sambuc #if __has_feature(cxx_alignof)
238*0a6a1f1dSLionel Sambuc int has_alignof();
239*0a6a1f1dSLionel Sambuc #else
240*0a6a1f1dSLionel Sambuc int no_alignof();
241*0a6a1f1dSLionel Sambuc #endif
242*0a6a1f1dSLionel Sambuc 
243*0a6a1f1dSLionel Sambuc // CHECK-1Y: has_alignof
244*0a6a1f1dSLionel Sambuc // CHECK-11: has_alignof
245*0a6a1f1dSLionel Sambuc // CHECK-NO-11: no_alignof
246*0a6a1f1dSLionel Sambuc 
247f4a2713aSLionel Sambuc #if __has_feature(cxx_raw_string_literals)
248f4a2713aSLionel Sambuc int has_raw_string_literals();
249f4a2713aSLionel Sambuc #else
250f4a2713aSLionel Sambuc int no_raw_string_literals();
251f4a2713aSLionel Sambuc #endif
252f4a2713aSLionel Sambuc 
253f4a2713aSLionel Sambuc // CHECK-1Y: has_raw_string_literals
254f4a2713aSLionel Sambuc // CHECK-11: has_raw_string_literals
255f4a2713aSLionel Sambuc // CHECK-NO-11: no_raw_string_literals
256f4a2713aSLionel Sambuc 
257f4a2713aSLionel Sambuc #if __has_feature(cxx_unicode_literals)
258f4a2713aSLionel Sambuc int has_unicode_literals();
259f4a2713aSLionel Sambuc #else
260f4a2713aSLionel Sambuc int no_unicode_literals();
261f4a2713aSLionel Sambuc #endif
262f4a2713aSLionel Sambuc 
263f4a2713aSLionel Sambuc // CHECK-1Y: has_unicode_literals
264f4a2713aSLionel Sambuc // CHECK-11: has_unicode_literals
265f4a2713aSLionel Sambuc // CHECK-NO-11: no_unicode_literals
266f4a2713aSLionel Sambuc 
267f4a2713aSLionel Sambuc #if __has_feature(cxx_constexpr)
268f4a2713aSLionel Sambuc int has_constexpr();
269f4a2713aSLionel Sambuc #else
270f4a2713aSLionel Sambuc int no_constexpr();
271f4a2713aSLionel Sambuc #endif
272f4a2713aSLionel Sambuc 
273f4a2713aSLionel Sambuc // CHECK-1Y: has_constexpr
274f4a2713aSLionel Sambuc // CHECK-11: has_constexpr
275f4a2713aSLionel Sambuc // CHECK-NO-11: no_constexpr
276f4a2713aSLionel Sambuc 
277f4a2713aSLionel Sambuc #if __has_feature(cxx_generalized_initializers)
278f4a2713aSLionel Sambuc int has_generalized_initializers();
279f4a2713aSLionel Sambuc #else
280f4a2713aSLionel Sambuc int no_generalized_initializers();
281f4a2713aSLionel Sambuc #endif
282f4a2713aSLionel Sambuc 
283f4a2713aSLionel Sambuc // CHECK-1Y: has_generalized_initializers
284f4a2713aSLionel Sambuc // CHECK-11: has_generalized_initializers
285f4a2713aSLionel Sambuc // CHECK-NO-11: no_generalized_initializers
286f4a2713aSLionel Sambuc 
287f4a2713aSLionel Sambuc #if __has_feature(cxx_unrestricted_unions)
288f4a2713aSLionel Sambuc int has_unrestricted_unions();
289f4a2713aSLionel Sambuc #else
290f4a2713aSLionel Sambuc int no_unrestricted_unions();
291f4a2713aSLionel Sambuc #endif
292f4a2713aSLionel Sambuc 
293f4a2713aSLionel Sambuc // CHECK-1Y: has_unrestricted_unions
294f4a2713aSLionel Sambuc // CHECK-11: has_unrestricted_unions
295f4a2713aSLionel Sambuc // CHECK-NO-11: no_unrestricted_unions
296f4a2713aSLionel Sambuc 
297f4a2713aSLionel Sambuc #if __has_feature(cxx_user_literals)
298f4a2713aSLionel Sambuc int has_user_literals();
299f4a2713aSLionel Sambuc #else
300f4a2713aSLionel Sambuc int no_user_literals();
301f4a2713aSLionel Sambuc #endif
302f4a2713aSLionel Sambuc 
303f4a2713aSLionel Sambuc // CHECK-1Y: has_user_literals
304f4a2713aSLionel Sambuc // CHECK-11: has_user_literals
305f4a2713aSLionel Sambuc // CHECK-NO-11: no_user_literals
306f4a2713aSLionel Sambuc 
307f4a2713aSLionel Sambuc #if __has_feature(cxx_local_type_template_args)
308f4a2713aSLionel Sambuc int has_local_type_template_args();
309f4a2713aSLionel Sambuc #else
310f4a2713aSLionel Sambuc int no_local_type_template_args();
311f4a2713aSLionel Sambuc #endif
312f4a2713aSLionel Sambuc 
313f4a2713aSLionel Sambuc // CHECK-1Y: has_local_type_template_args
314f4a2713aSLionel Sambuc // CHECK-11: has_local_type_template_args
315f4a2713aSLionel Sambuc // CHECK-NO-11: no_local_type_template_args
316f4a2713aSLionel Sambuc 
317f4a2713aSLionel Sambuc #if __has_feature(cxx_inheriting_constructors)
318f4a2713aSLionel Sambuc int has_inheriting_constructors();
319f4a2713aSLionel Sambuc #else
320f4a2713aSLionel Sambuc int no_inheriting_constructors();
321f4a2713aSLionel Sambuc #endif
322f4a2713aSLionel Sambuc 
323f4a2713aSLionel Sambuc // CHECK-1Y: has_inheriting_constructors
324f4a2713aSLionel Sambuc // CHECK-11: has_inheriting_constructors
325f4a2713aSLionel Sambuc // CHECK-NO-11: no_inheriting_constructors
326f4a2713aSLionel Sambuc 
327f4a2713aSLionel Sambuc #if __has_feature(cxx_thread_local)
328f4a2713aSLionel Sambuc int has_thread_local();
329f4a2713aSLionel Sambuc #else
330f4a2713aSLionel Sambuc int no_thread_local();
331f4a2713aSLionel Sambuc #endif
332f4a2713aSLionel Sambuc 
333f4a2713aSLionel Sambuc // CHECK-1Y: has_thread_local
334f4a2713aSLionel Sambuc // CHECK-11: has_thread_local
335f4a2713aSLionel Sambuc // CHECK-NO-11: no_thread_local
336f4a2713aSLionel Sambuc // CHECK-NO-TLS: no_thread_local
337f4a2713aSLionel Sambuc 
338f4a2713aSLionel Sambuc // === C++1y features ===
339f4a2713aSLionel Sambuc 
340f4a2713aSLionel Sambuc #if __has_feature(cxx_binary_literals)
341f4a2713aSLionel Sambuc int has_binary_literals();
342f4a2713aSLionel Sambuc #else
343f4a2713aSLionel Sambuc int no_binary_literals();
344f4a2713aSLionel Sambuc #endif
345f4a2713aSLionel Sambuc 
346f4a2713aSLionel Sambuc // CHECK-1Y: has_binary_literals
347f4a2713aSLionel Sambuc // CHECK-11: no_binary_literals
348f4a2713aSLionel Sambuc // CHECK-NO-11: no_binary_literals
349f4a2713aSLionel Sambuc 
350f4a2713aSLionel Sambuc #if __has_feature(cxx_aggregate_nsdmi)
351f4a2713aSLionel Sambuc int has_aggregate_nsdmi();
352f4a2713aSLionel Sambuc #else
353f4a2713aSLionel Sambuc int no_aggregate_nsdmi();
354f4a2713aSLionel Sambuc #endif
355f4a2713aSLionel Sambuc 
356f4a2713aSLionel Sambuc // CHECK-1Y: has_aggregate_nsdmi
357f4a2713aSLionel Sambuc // CHECK-11: no_aggregate_nsdmi
358f4a2713aSLionel Sambuc // CHECK-NO-11: no_aggregate_nsdmi
359f4a2713aSLionel Sambuc 
360f4a2713aSLionel Sambuc #if __has_feature(cxx_return_type_deduction)
361f4a2713aSLionel Sambuc int has_return_type_deduction();
362f4a2713aSLionel Sambuc #else
363f4a2713aSLionel Sambuc int no_return_type_deduction();
364f4a2713aSLionel Sambuc #endif
365f4a2713aSLionel Sambuc 
366f4a2713aSLionel Sambuc // CHECK-1Y: has_return_type_deduction
367f4a2713aSLionel Sambuc // CHECK-11: no_return_type_deduction
368f4a2713aSLionel Sambuc // CHECK-NO-11: no_return_type_deduction
369f4a2713aSLionel Sambuc 
370f4a2713aSLionel Sambuc #if __has_feature(cxx_contextual_conversions)
371f4a2713aSLionel Sambuc int has_contextual_conversions();
372f4a2713aSLionel Sambuc #else
373f4a2713aSLionel Sambuc int no_contextual_conversions();
374f4a2713aSLionel Sambuc #endif
375f4a2713aSLionel Sambuc 
376f4a2713aSLionel Sambuc // CHECK-1Y: has_contextual_conversions
377f4a2713aSLionel Sambuc // CHECK-11: no_contextual_conversions
378f4a2713aSLionel Sambuc // CHECK-NO-11: no_contextual_conversions
379f4a2713aSLionel Sambuc 
380f4a2713aSLionel Sambuc #if __has_feature(cxx_relaxed_constexpr)
381f4a2713aSLionel Sambuc int has_relaxed_constexpr();
382f4a2713aSLionel Sambuc #else
383f4a2713aSLionel Sambuc int no_relaxed_constexpr();
384f4a2713aSLionel Sambuc #endif
385f4a2713aSLionel Sambuc 
386f4a2713aSLionel Sambuc // CHECK-1Y: has_relaxed_constexpr
387f4a2713aSLionel Sambuc // CHECK-11: no_relaxed_constexpr
388f4a2713aSLionel Sambuc // CHECK-NO-11: no_relaxed_constexpr
389f4a2713aSLionel Sambuc 
390f4a2713aSLionel Sambuc #if __has_feature(cxx_variable_templates)
391f4a2713aSLionel Sambuc int has_variable_templates();
392f4a2713aSLionel Sambuc #else
393f4a2713aSLionel Sambuc int no_variable_templates();
394f4a2713aSLionel Sambuc #endif
395f4a2713aSLionel Sambuc 
396f4a2713aSLionel Sambuc // CHECK-1Y: has_variable_templates
397f4a2713aSLionel Sambuc // CHECK-11: no_variable_templates
398f4a2713aSLionel Sambuc // CHECK-NO-11: no_variable_templates
399f4a2713aSLionel Sambuc 
400f4a2713aSLionel Sambuc #if __has_feature(cxx_init_captures)
401f4a2713aSLionel Sambuc int has_init_captures();
402f4a2713aSLionel Sambuc #else
403f4a2713aSLionel Sambuc int no_init_captures();
404f4a2713aSLionel Sambuc #endif
405f4a2713aSLionel Sambuc 
406f4a2713aSLionel Sambuc // CHECK-1Y: has_init_captures
407f4a2713aSLionel Sambuc // CHECK-11: no_init_captures
408f4a2713aSLionel Sambuc // CHECK-NO-11: no_init_captures
409*0a6a1f1dSLionel Sambuc 
410*0a6a1f1dSLionel Sambuc #if __has_feature(cxx_decltype_auto)
411*0a6a1f1dSLionel Sambuc int has_decltype_auto();
412*0a6a1f1dSLionel Sambuc #else
413*0a6a1f1dSLionel Sambuc int no_decltype_auto();
414*0a6a1f1dSLionel Sambuc #endif
415*0a6a1f1dSLionel Sambuc 
416*0a6a1f1dSLionel Sambuc // CHECK-1Y: has_decltype_auto
417*0a6a1f1dSLionel Sambuc // CHECK-11: no_decltype_auto
418*0a6a1f1dSLionel Sambuc // CHECK-NO-11: no_decltype_auto
419*0a6a1f1dSLionel Sambuc 
420*0a6a1f1dSLionel Sambuc #if __has_feature(cxx_generic_lambdas)
421*0a6a1f1dSLionel Sambuc int has_generic_lambdas();
422*0a6a1f1dSLionel Sambuc #else
423*0a6a1f1dSLionel Sambuc int no_generic_lambdas();
424*0a6a1f1dSLionel Sambuc #endif
425*0a6a1f1dSLionel Sambuc 
426*0a6a1f1dSLionel Sambuc // CHECK-1Y: has_generic_lambdas
427*0a6a1f1dSLionel Sambuc // CHECK-11: no_generic_lambdas
428*0a6a1f1dSLionel Sambuc // CHECK-NO-11: no_generic_lambdas
429