c++: Implement __is_nothrow_invocable built-in trait
[official-gcc.git] / gcc / testsuite / g++.dg / ext / has-builtin-1.C
blob65740a118001c9ee16964b104fa4b809037ce51f
1 // PR c++/106759
2 // { dg-do compile }
3 // Verify that __has_builtin gives the correct answer for C++ built-ins.
5 #if !__has_builtin (__add_lvalue_reference)
6 # error "__has_builtin (__add_lvalue_reference) failed"
7 #endif
8 #if !__has_builtin (__add_pointer)
9 # error "__has_builtin (__add_pointer) failed"
10 #endif
11 #if !__has_builtin (__add_rvalue_reference)
12 # error "__has_builtin (__add_rvalue_reference) failed"
13 #endif
14 #if !__has_builtin (__array_rank)
15 # error "__has_builtin (__array_rank) failed"
16 #endif
17 #if !__has_builtin (__builtin_addressof)
18 # error "__has_builtin (__builtin_addressof) failed"
19 #endif
20 #if !__has_builtin (__builtin_bit_cast)
21 # error "__has_builtin (__builtin_bit_cast) failed"
22 #endif
23 #if !__has_builtin (__builtin_is_constant_evaluated)
24 # error "__has_builtin (__builtin_is_constant_evaluated) failed"
25 #endif
26 #if !__has_builtin (__builtin_is_corresponding_member)
27 # error "__has_builtin (__builtin_is_corresponding_member) failed"
28 #endif
29 #if !__has_builtin (__builtin_is_pointer_interconvertible_with_class)
30 # error "__has_builtin (__builtin_is_pointer_interconvertible_with_class) failed"
31 #endif
32 #if !__has_builtin (__builtin_launder)
33 # error "__has_builtin (__builtin_launder) failed"
34 #endif
35 #if !__has_builtin (__builtin_source_location)
36 # error "__has_builtin (__builtin_source_location) failed"
37 #endif
38 #if !__has_builtin (__decay)
39 # error "__has_builtin (__decay) failed"
40 #endif
41 #if !__has_builtin (__has_nothrow_assign)
42 # error "__has_builtin (__has_nothrow_assign) failed"
43 #endif
44 #if !__has_builtin (__has_nothrow_constructor)
45 # error "__has_builtin (__has_nothrow_constructor) failed"
46 #endif
47 #if !__has_builtin (__has_nothrow_copy)
48 # error "__has_builtin (__has_nothrow_copy) failed"
49 #endif
50 #if !__has_builtin (__has_trivial_assign)
51 # error "__has_builtin (__has_trivial_assign) failed"
52 #endif
53 #if !__has_builtin (__has_trivial_constructor)
54 # error "__has_builtin (__has_trivial_constructor) failed"
55 #endif
56 #if !__has_builtin (__has_trivial_copy)
57 # error "__has_builtin (__has_trivial_copy) failed"
58 #endif
59 #if !__has_builtin (__has_trivial_destructor)
60 # error "__has_builtin (__has_trivial_destructor) failed"
61 #endif
62 #if !__has_builtin (__has_unique_object_representations)
63 # error "__has_builtin (__has_unique_object_representations) failed"
64 #endif
65 #if !__has_builtin (__has_virtual_destructor)
66 # error "__has_builtin (__has_virtual_destructor) failed"
67 #endif
68 #if !__has_builtin (__is_abstract)
69 # error "__has_builtin (__is_abstract) failed"
70 #endif
71 #if !__has_builtin (__is_aggregate)
72 # error "__has_builtin (__is_aggregate) failed"
73 #endif
74 #if !__has_builtin (__is_array)
75 # error "__has_builtin (__is_array) failed"
76 #endif
77 #if !__has_builtin (__is_assignable)
78 # error "__has_builtin (__is_assignable) failed"
79 #endif
80 #if !__has_builtin (__is_base_of)
81 # error "__has_builtin (__is_base_of) failed"
82 #endif
83 #if !__has_builtin (__is_bounded_array)
84 # error "__has_builtin (__is_bounded_array) failed"
85 #endif
86 #if !__has_builtin (__is_class)
87 # error "__has_builtin (__is_class) failed"
88 #endif
89 #if !__has_builtin (__is_const)
90 # error "__has_builtin (__is_const) failed"
91 #endif
92 #if !__has_builtin (__is_constructible)
93 # error "__has_builtin (__is_constructible) failed"
94 #endif
95 #if !__has_builtin (__is_convertible)
96 # error "__has_builtin (__is_convertible) failed"
97 #endif
98 #if !__has_builtin (__is_empty)
99 # error "__has_builtin (__is_empty) failed"
100 #endif
101 #if !__has_builtin (__is_enum)
102 # error "__has_builtin (__is_enum) failed"
103 #endif
104 #if !__has_builtin (__is_final)
105 # error "__has_builtin (__is_final) failed"
106 #endif
107 #if !__has_builtin (__is_function)
108 # error "__has_builtin (__is_function) failed"
109 #endif
110 #if !__has_builtin (__is_invocable)
111 # error "__has_builtin (__is_invocable) failed"
112 #endif
113 #if !__has_builtin (__is_layout_compatible)
114 # error "__has_builtin (__is_layout_compatible) failed"
115 #endif
116 #if !__has_builtin (__is_literal_type)
117 # error "__has_builtin (__is_literal_type) failed"
118 #endif
119 #if !__has_builtin (__is_member_function_pointer)
120 # error "__has_builtin (__is_member_function_pointer) failed"
121 #endif
122 #if !__has_builtin (__is_member_object_pointer)
123 # error "__has_builtin (__is_member_object_pointer) failed"
124 #endif
125 #if !__has_builtin (__is_member_pointer)
126 # error "__has_builtin (__is_member_pointer) failed"
127 #endif
128 #if !__has_builtin (__is_nothrow_assignable)
129 # error "__has_builtin (__is_nothrow_assignable) failed"
130 #endif
131 #if !__has_builtin (__is_nothrow_constructible)
132 # error "__has_builtin (__is_nothrow_constructible) failed"
133 #endif
134 #if !__has_builtin (__is_nothrow_convertible)
135 # error "__has_builtin (__is_nothrow_convertible) failed"
136 #endif
137 #if !__has_builtin (__is_nothrow_invocable)
138 # error "__has_builtin (__is_nothrow_invocable) failed"
139 #endif
140 #if !__has_builtin (__is_object)
141 # error "__has_builtin (__is_object) failed"
142 #endif
143 #if !__has_builtin (__is_pod)
144 # error "__has_builtin (__is_pod) failed"
145 #endif
146 #if !__has_builtin (__is_pointer)
147 # error "__has_builtin (__is_pointer) failed"
148 #endif
149 #if !__has_builtin (__is_pointer_interconvertible_base_of)
150 # error "__has_builtin (__is_pointer_interconvertible_base_of) failed"
151 #endif
152 #if !__has_builtin (__is_polymorphic)
153 # error "__has_builtin (__is_polymorphic) failed"
154 #endif
155 #if !__has_builtin (__is_reference)
156 # error "__has_builtin (__is_reference) failed"
157 #endif
158 #if !__has_builtin (__is_same)
159 # error "__has_builtin (__is_same) failed"
160 #endif
161 #if !__has_builtin (__is_same_as)
162 # error "__has_builtin (__is_same_as) failed"
163 #endif
164 #if !__has_builtin (__is_scoped_enum)
165 # error "__has_builtin (__is_scoped_enum) failed"
166 #endif
167 #if !__has_builtin (__is_standard_layout)
168 # error "__has_builtin (__is_standard_layout) failed"
169 #endif
170 #if !__has_builtin (__is_trivial)
171 # error "__has_builtin (__is_trivial) failed"
172 #endif
173 #if !__has_builtin (__is_trivially_assignable)
174 # error "__has_builtin (__is_trivially_assignable) failed"
175 #endif
176 #if !__has_builtin (__is_trivially_constructible)
177 # error "__has_builtin (__is_trivially_constructible) failed"
178 #endif
179 #if !__has_builtin (__is_trivially_copyable)
180 # error "__has_builtin (__is_trivially_copyable) failed"
181 #endif
182 #if !__has_builtin (__is_unbounded_array)
183 # error "__has_builtin (__is_unbounded_array) failed"
184 #endif
185 #if !__has_builtin (__is_union)
186 # error "__has_builtin (__is_union) failed"
187 #endif
188 #if !__has_builtin (__is_volatile)
189 # error "__has_builtin (__is_volatile) failed"
190 #endif
191 #if !__has_builtin (__reference_constructs_from_temporary)
192 # error "__has_builtin (__reference_constructs_from_temporary) failed"
193 #endif
194 #if !__has_builtin (__reference_converts_from_temporary)
195 # error "__has_builtin (__reference_converts_from_temporary) failed"
196 #endif
197 #if !__has_builtin (__remove_all_extents)
198 # error "__has_builtin (__remove_all_extents) failed"
199 #endif
200 #if !__has_builtin (__remove_cv)
201 # error "__has_builtin (__remove_cv) failed"
202 #endif
203 #if !__has_builtin (__remove_cvref)
204 # error "__has_builtin (__remove_cvref) failed"
205 #endif
206 #if !__has_builtin (__remove_extent)
207 # error "__has_builtin (__remove_extent) failed"
208 #endif
209 #if !__has_builtin (__remove_pointer)
210 # error "__has_builtin (__remove_pointer) failed"
211 #endif
212 #if !__has_builtin (__remove_reference)
213 # error "__has_builtin (__remove_reference) failed"
214 #endif
215 #if !__has_builtin (__underlying_type)
216 # error "__has_builtin (__underlying_type) failed"
217 #endif