Line data Source code
1 : /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2 : |* *|
3 : |* Code to implement the __has_attribute logic *|
4 : |* *|
5 : |* Automatically generated file, do not edit! *|
6 : |* *|
7 : \*===----------------------------------------------------------------------===*/
8 :
9 : const llvm::Triple &T = Target.getTriple();
10 71262 : switch (Syntax) {
11 59105 : case AttrSyntax::GNU:
12 59105 : return llvm::StringSwitch<int>(Name)
13 59105 : .Case("amdgpu_flat_work_group_size", 1)
14 59105 : .Case("amdgpu_num_sgpr", 1)
15 59105 : .Case("amdgpu_num_vgpr", 1)
16 59105 : .Case("amdgpu_waves_per_eu", 1)
17 59105 : .Case("interrupt", true && (T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb || T.getArch() == llvm::Triple::armeb || T.getArch() == llvm::Triple::thumbeb) ? 1 : 0)
18 59105 : .Case("interrupt", true && (T.getArch() == llvm::Triple::avr) ? 1 : 0)
19 118210 : .Case("signal", true && (T.getArch() == llvm::Triple::avr) ? 1 : 0)
20 59105 : .Case("abi_tag", 1)
21 59105 : .Case("acquire_capability", 1)
22 59105 : .Case("acquire_shared_capability", 1)
23 59105 : .Case("exclusive_lock_function", 1)
24 59105 : .Case("shared_lock_function", 1)
25 59105 : .Case("acquire_capability", 1)
26 59105 : .Case("acquire_shared_capability", 1)
27 59105 : .Case("exclusive_lock_function", 1)
28 59105 : .Case("shared_lock_function", 1)
29 59105 : .Case("acquire_capability", 1)
30 59105 : .Case("acquire_shared_capability", 1)
31 59105 : .Case("exclusive_lock_function", 1)
32 59105 : .Case("shared_lock_function", 1)
33 59105 : .Case("acquire_capability", 1)
34 59105 : .Case("acquire_shared_capability", 1)
35 59105 : .Case("exclusive_lock_function", 1)
36 59105 : .Case("shared_lock_function", 1)
37 59105 : .Case("acquired_after", 1)
38 59105 : .Case("acquired_before", 1)
39 59105 : .Case("address_space", 1)
40 59105 : .Case("alias", 1)
41 59105 : .Case("align_value", 1)
42 59105 : .Case("aligned", 1)
43 59105 : .Case("alloc_align", 1)
44 59105 : .Case("alloc_size", 1)
45 59105 : .Case("always_destroy", 1)
46 59105 : .Case("always_inline", 1)
47 59105 : .Case("analyzer_noreturn", 1)
48 59105 : .Case("annotate", 1)
49 59105 : .Case("interrupt", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0)
50 59105 : .Case("no_caller_saved_registers", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0)
51 118210 : .Case("nocf_check", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0)
52 59105 : .Case("objc_arc_weak_reference_unavailable", 1)
53 59105 : .Case("argument_with_type_tag", 1)
54 59105 : .Case("pointer_with_type_tag", 1)
55 59105 : .Case("argument_with_type_tag", 1)
56 59105 : .Case("pointer_with_type_tag", 1)
57 59105 : .Case("artificial", 1)
58 59105 : .Case("assert_capability", 1)
59 59105 : .Case("assert_shared_capability", 1)
60 59105 : .Case("assert_capability", 1)
61 59105 : .Case("assert_shared_capability", 1)
62 59105 : .Case("assert_exclusive_lock", 1)
63 59105 : .Case("assert_shared_lock", 1)
64 59105 : .Case("assume_aligned", 1)
65 59105 : .Case("availability", 1)
66 59105 : .Case("blocks", 1)
67 59105 : .Case("bounded", 1)
68 59105 : .Case("cdecl", 1)
69 59105 : .Case("cf_audited_transfer", 1)
70 59105 : .Case("cf_consumed", 1)
71 118210 : .Case("cf_returns_not_retained", 1)
72 59105 : .Case("cf_returns_retained", 1)
73 59105 : .Case("cf_unknown_transfer", 1)
74 59105 : .Case("cpu_dispatch", 1)
75 59105 : .Case("cpu_specific", 1)
76 59105 : .Case("constant", 1)
77 59105 : .Case("cudart_builtin", 1)
78 59105 : .Case("device", 1)
79 59105 : .Case("device_builtin", 1)
80 59105 : .Case("device_builtin_surface_type", 1)
81 59105 : .Case("device_builtin_texture_type", 1)
82 59105 : .Case("global", 1)
83 59105 : .Case("host", 1)
84 59105 : .Case("launch_bounds", 1)
85 59105 : .Case("shared", 1)
86 59105 : .Case("callable_when", 1)
87 59105 : .Case("capability", 1)
88 59105 : .Case("shared_capability", 1)
89 59105 : .Case("capability", 1)
90 59105 : .Case("shared_capability", 1)
91 59105 : .Case("carries_dependency", 1)
92 59105 : .Case("cleanup", 1)
93 59105 : .Case("cold", 1)
94 59105 : .Case("common", 1)
95 59105 : .Case("const", 1)
96 59105 : .Case("__const", 1)
97 59105 : .Case("const", 1)
98 59105 : .Case("__const", 1)
99 59105 : .Case("constructor", 1)
100 59105 : .Case("consumable", 1)
101 59105 : .Case("consumable_auto_cast_state", 1)
102 59105 : .Case("consumable_set_state_on_read", 1)
103 59105 : .Case("convergent", 1)
104 59105 : .Case("dllexport", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb || T.getArch() == llvm::Triple::aarch64) && (T.getOS() == llvm::Triple::Win32) ? 1 : 0)
105 118210 : .Case("dllimport", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb || T.getArch() == llvm::Triple::aarch64) && (T.getOS() == llvm::Triple::Win32) ? 1 : 0)
106 59105 : .Case("deprecated", 1)
107 59105 : .Case("destructor", 1)
108 59105 : .Case("diagnose_if", 1)
109 59105 : .Case("disable_tail_calls", 1)
110 59105 : .Case("enable_if", 1)
111 59105 : .Case("enum_extensibility", 1)
112 59105 : .Case("exclude_from_explicit_instantiation", 1)
113 59105 : .Case("exclusive_trylock_function", 1)
114 59105 : .Case("ext_vector_type", 1)
115 59105 : .Case("external_source_symbol", 1)
116 59105 : .Case("fastcall", 1)
117 59105 : .Case("flag_enum", 1)
118 59105 : .Case("flatten", 1)
119 59105 : .Case("format", 1)
120 59105 : .Case("format_arg", 1)
121 59105 : .Case("gnu_inline", 1)
122 59105 : .Case("guarded_by", 1)
123 59105 : .Case("guarded_var", 1)
124 59105 : .Case("hot", 1)
125 59105 : .Case("ibaction", 1)
126 59105 : .Case("iboutlet", 1)
127 59105 : .Case("iboutletcollection", 1)
128 118210 : .Case("ifunc", true && (T.getObjectFormat() == llvm::Triple::ELF) ? 1 : 0)
129 59105 : .Case("init_priority", 1)
130 59105 : .Case("intel_ocl_bicc", 1)
131 59105 : .Case("internal_linkage", 1)
132 59105 : .Case("lto_visibility_public", 1)
133 59105 : .Case("lifetimebound", 1)
134 59105 : .Case("lock_returned", 1)
135 59105 : .Case("lockable", 1)
136 59105 : .Case("locks_excluded", 1)
137 59105 : .Case("ms_abi", 1)
138 118210 : .Case("interrupt", true && (T.getArch() == llvm::Triple::msp430) ? 1 : 0)
139 59105 : .Case("ms_struct", 1)
140 59105 : .Case("may_alias", 1)
141 118210 : .Case("micromips", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0)
142 59105 : .Case("minsize", 1)
143 59105 : .Case("min_vector_width", 1)
144 59105 : .Case("mips16", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0)
145 59105 : .Case("interrupt", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0)
146 59105 : .Case("long_call", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel || T.getArch() == llvm::Triple::mips64 || T.getArch() == llvm::Triple::mips64el) ? 1 : 0)
147 59105 : .Case("far", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel || T.getArch() == llvm::Triple::mips64 || T.getArch() == llvm::Triple::mips64el) ? 1 : 0)
148 59105 : .Case("long_call", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel || T.getArch() == llvm::Triple::mips64 || T.getArch() == llvm::Triple::mips64el) ? 1 : 0)
149 59105 : .Case("far", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel || T.getArch() == llvm::Triple::mips64 || T.getArch() == llvm::Triple::mips64el) ? 1 : 0)
150 59105 : .Case("short_call", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel || T.getArch() == llvm::Triple::mips64 || T.getArch() == llvm::Triple::mips64el) ? 1 : 0)
151 59105 : .Case("near", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel || T.getArch() == llvm::Triple::mips64 || T.getArch() == llvm::Triple::mips64el) ? 1 : 0)
152 59105 : .Case("short_call", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel || T.getArch() == llvm::Triple::mips64 || T.getArch() == llvm::Triple::mips64el) ? 1 : 0)
153 118210 : .Case("near", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel || T.getArch() == llvm::Triple::mips64 || T.getArch() == llvm::Triple::mips64el) ? 1 : 0)
154 59105 : .Case("mode", 1)
155 59105 : .Case("ns_consumed", 1)
156 59105 : .Case("ns_consumes_self", 1)
157 59105 : .Case("ns_returns_autoreleased", 1)
158 59105 : .Case("ns_returns_not_retained", 1)
159 59105 : .Case("ns_returns_retained", 1)
160 59105 : .Case("naked", 1)
161 59105 : .Case("neon_polyvector_type", 1)
162 59105 : .Case("neon_vector_type", 1)
163 59105 : .Case("nocommon", 1)
164 59105 : .Case("nodebug", 1)
165 59105 : .Case("no_destroy", 1)
166 59105 : .Case("noduplicate", 1)
167 59105 : .Case("noescape", 1)
168 59105 : .Case("noinline", 1)
169 59105 : .Case("no_instrument_function", 1)
170 59105 : .Case("nomicromips", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0)
171 118210 : .Case("nomips16", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) ? 1 : 0)
172 59105 : .Case("noreturn", 1)
173 59105 : .Case("no_sanitize", 1)
174 59105 : .Case("no_address_safety_analysis", 1)
175 59105 : .Case("no_sanitize_address", 1)
176 59105 : .Case("no_sanitize_thread", 1)
177 59105 : .Case("no_sanitize_memory", 1)
178 59105 : .Case("no_address_safety_analysis", 1)
179 59105 : .Case("no_sanitize_address", 1)
180 59105 : .Case("no_sanitize_thread", 1)
181 59105 : .Case("no_sanitize_memory", 1)
182 59105 : .Case("no_address_safety_analysis", 1)
183 59105 : .Case("no_sanitize_address", 1)
184 59105 : .Case("no_sanitize_thread", 1)
185 59105 : .Case("no_sanitize_memory", 1)
186 59105 : .Case("no_address_safety_analysis", 1)
187 59105 : .Case("no_sanitize_address", 1)
188 59105 : .Case("no_sanitize_thread", 1)
189 59105 : .Case("no_sanitize_memory", 1)
190 59105 : .Case("no_split_stack", 1)
191 59105 : .Case("no_stack_protector", 1)
192 59105 : .Case("no_thread_safety_analysis", 1)
193 59105 : .Case("nothrow", 1)
194 59105 : .Case("nonnull", 1)
195 59105 : .Case("not_tail_called", 1)
196 59105 : .Case("nv_weak", 1)
197 59105 : .Case("objc_boxable", 1)
198 59105 : .Case("objc_bridge", 1)
199 59105 : .Case("objc_bridge_mutable", 1)
200 59105 : .Case("objc_bridge_related", 1)
201 59105 : .Case("objc_designated_initializer", 1)
202 59105 : .Case("objc_exception", 1)
203 59105 : .Case("objc_protocol_requires_explicit_implementation", 1)
204 59105 : .Case("objc_gc", 1)
205 59105 : .Case("objc_independent_class", 1)
206 59105 : .Case("objc_method_family", 1)
207 59105 : .Case("NSObject", 1)
208 59105 : .Case("objc_ownership", 1)
209 59105 : .Case("objc_precise_lifetime", 1)
210 59105 : .Case("objc_requires_property_definitions", 1)
211 59105 : .Case("objc_requires_super", 1)
212 59105 : .Case("objc_returns_inner_pointer", 1)
213 59105 : .Case("objc_root_class", 1)
214 59105 : .Case("objc_runtime_name", 1)
215 59105 : .Case("objc_runtime_visible", 1)
216 59105 : .Case("objc_subclassing_restricted", 1)
217 59105 : .Case("intel_reqd_sub_group_size", 1)
218 59105 : .Case("nosvm", 1)
219 59105 : .Case("opencl_unroll_hint", 1)
220 59105 : .Case("optnone", 1)
221 59105 : .Case("overloadable", 1)
222 59105 : .Case("ownership_holds", 1)
223 59105 : .Case("ownership_returns", 1)
224 59105 : .Case("ownership_takes", 1)
225 59105 : .Case("ownership_holds", 1)
226 59105 : .Case("ownership_returns", 1)
227 59105 : .Case("ownership_takes", 1)
228 59105 : .Case("ownership_holds", 1)
229 59105 : .Case("ownership_returns", 1)
230 59105 : .Case("ownership_takes", 1)
231 59105 : .Case("packed", 1)
232 59105 : .Case("param_typestate", 1)
233 59105 : .Case("pascal", 1)
234 59105 : .Case("pass_object_size", 1)
235 59105 : .Case("pcs", 1)
236 59105 : .Case("preserve_all", 1)
237 59105 : .Case("preserve_most", 1)
238 59105 : .Case("pt_guarded_by", 1)
239 59105 : .Case("pt_guarded_var", 1)
240 59105 : .Case("pure", 1)
241 118210 : .Case("interrupt", true && (T.getArch() == llvm::Triple::riscv32 || T.getArch() == llvm::Triple::riscv64) ? 1 : 0)
242 59105 : .Case("regcall", 1)
243 59105 : .Case("regparm", 1)
244 59105 : .Case("reinitializes", 1)
245 59105 : .Case("release_capability", 1)
246 59105 : .Case("release_shared_capability", 1)
247 59105 : .Case("release_generic_capability", 1)
248 59105 : .Case("unlock_function", 1)
249 59105 : .Case("release_capability", 1)
250 59105 : .Case("release_shared_capability", 1)
251 59105 : .Case("release_generic_capability", 1)
252 59105 : .Case("unlock_function", 1)
253 59105 : .Case("release_capability", 1)
254 59105 : .Case("release_shared_capability", 1)
255 59105 : .Case("release_generic_capability", 1)
256 59105 : .Case("unlock_function", 1)
257 59105 : .Case("release_capability", 1)
258 59105 : .Case("release_shared_capability", 1)
259 59105 : .Case("release_generic_capability", 1)
260 59105 : .Case("unlock_function", 1)
261 59105 : .Case("kernel", 1)
262 59105 : .Case("reqd_work_group_size", 1)
263 59105 : .Case("require_constant_initialization", 1)
264 59105 : .Case("requires_capability", 1)
265 59105 : .Case("exclusive_locks_required", 1)
266 59105 : .Case("requires_shared_capability", 1)
267 59105 : .Case("shared_locks_required", 1)
268 59105 : .Case("requires_capability", 1)
269 59105 : .Case("exclusive_locks_required", 1)
270 59105 : .Case("requires_shared_capability", 1)
271 59105 : .Case("shared_locks_required", 1)
272 59105 : .Case("requires_capability", 1)
273 59105 : .Case("exclusive_locks_required", 1)
274 59105 : .Case("requires_shared_capability", 1)
275 59105 : .Case("shared_locks_required", 1)
276 59105 : .Case("requires_capability", 1)
277 59105 : .Case("exclusive_locks_required", 1)
278 59105 : .Case("requires_shared_capability", 1)
279 59105 : .Case("shared_locks_required", 1)
280 59105 : .Case("malloc", 1)
281 59105 : .Case("return_typestate", 1)
282 59105 : .Case("returns_nonnull", 1)
283 59105 : .Case("returns_twice", 1)
284 59105 : .Case("scoped_lockable", 1)
285 59105 : .Case("section", 1)
286 59105 : .Case("selectany", 1)
287 59105 : .Case("sentinel", 1)
288 59105 : .Case("set_typestate", 1)
289 59105 : .Case("shared_trylock_function", 1)
290 59105 : .Case("stdcall", 1)
291 59105 : .Case("swiftcall", 1)
292 59105 : .Case("swift_context", 1)
293 59105 : .Case("swift_error_result", 1)
294 59105 : .Case("swift_indirect_result", 1)
295 59105 : .Case("sysv_abi", 1)
296 59105 : .Case("tls_model", 1)
297 59105 : .Case("target", 1)
298 59105 : .Case("test_typestate", 1)
299 59105 : .Case("thiscall", 1)
300 59105 : .Case("transparent_union", 1)
301 59105 : .Case("trivial_abi", 1)
302 59105 : .Case("try_acquire_capability", 1)
303 59105 : .Case("try_acquire_shared_capability", 1)
304 59105 : .Case("try_acquire_capability", 1)
305 59105 : .Case("try_acquire_shared_capability", 1)
306 59105 : .Case("type_tag_for_datatype", 1)
307 59105 : .Case("type_visibility", 1)
308 59105 : .Case("unavailable", 1)
309 59105 : .Case("unused", 1)
310 59105 : .Case("used", 1)
311 59105 : .Case("vecreturn", 1)
312 59105 : .Case("vec_type_hint", 1)
313 59105 : .Case("vectorcall", 1)
314 59105 : .Case("vector_size", 1)
315 59105 : .Case("visibility", 1)
316 59105 : .Case("warn_unused", 1)
317 59105 : .Case("warn_unused_result", 1)
318 59105 : .Case("weak", 1)
319 59105 : .Case("weak_import", 1)
320 59105 : .Case("weakref", 1)
321 59105 : .Case("work_group_size_hint", 1)
322 118210 : .Case("force_align_arg_pointer", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) ? 1 : 0)
323 59105 : .Case("xray_always_instrument", 1)
324 59105 : .Case("xray_never_instrument", 1)
325 59105 : .Case("xray_always_instrument", 1)
326 59105 : .Case("xray_never_instrument", 1)
327 59105 : .Case("xray_log_args", 1)
328 : .Default(0);
329 6192 : case AttrSyntax::Declspec:
330 6192 : return llvm::StringSwitch<int>(Name)
331 6192 : .Case("align", 1)
332 6192 : .Case("__constant__", 1)
333 6192 : .Case("__cudart_builtin__", 1)
334 6192 : .Case("__device__", 1)
335 6192 : .Case("__device_builtin__", 1)
336 6192 : .Case("__device_builtin_surface_type__", 1)
337 6192 : .Case("__device_builtin_texture_type__", 1)
338 6192 : .Case("__global__", 1)
339 6192 : .Case("__host__", 1)
340 6192 : .Case("__launch_bounds__", 1)
341 6192 : .Case("__shared__", 1)
342 6192 : .Case("code_seg", 1)
343 6192 : .Case("dllexport", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb || T.getArch() == llvm::Triple::aarch64) && (T.getOS() == llvm::Triple::Win32) ? 1 : 0)
344 12384 : .Case("dllimport", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb || T.getArch() == llvm::Triple::aarch64) && (T.getOS() == llvm::Triple::Win32) ? 1 : 0)
345 6192 : .Case("deprecated", 1)
346 6192 : .Case("empty_bases", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb || T.getArch() == llvm::Triple::aarch64) && (Target.getCXXABI().getKind() == TargetCXXABI::Microsoft) ? 1 : 0)
347 6192 : .Case("layout_version", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb || T.getArch() == llvm::Triple::aarch64) && (Target.getCXXABI().getKind() == TargetCXXABI::Microsoft) ? 1 : 0)
348 12384 : .Case("novtable", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb || T.getArch() == llvm::Triple::aarch64) && (Target.getCXXABI().getKind() == TargetCXXABI::Microsoft) ? 1 : 0)
349 6192 : .Case("naked", 1)
350 6192 : .Case("noalias", 1)
351 6192 : .Case("noinline", 1)
352 6192 : .Case("noreturn", 1)
353 6192 : .Case("nothrow", 1)
354 6192 : .Case("restrict", 1)
355 6192 : .Case("allocate", 1)
356 6192 : .Case("selectany", 1)
357 6192 : .Case("thread", 1)
358 6192 : .Case("uuid", 1)
359 6192 : .Case("property", 1)
360 : .Default(0);
361 0 : case AttrSyntax::Microsoft:
362 0 : return llvm::StringSwitch<int>(Name)
363 0 : .Case("uuid", 1)
364 : .Default(0);
365 0 : case AttrSyntax::Pragma:
366 0 : return llvm::StringSwitch<int>(Name)
367 0 : .Case("init_seg", 1)
368 0 : .Case("loop", 1)
369 0 : .Case("unroll", 1)
370 0 : .Case("nounroll", 1)
371 0 : .Case("unroll_and_jam", 1)
372 0 : .Case("nounroll_and_jam", 1)
373 0 : .Case("loop", 1)
374 0 : .Case("unroll", 1)
375 0 : .Case("nounroll", 1)
376 0 : .Case("unroll_and_jam", 1)
377 0 : .Case("nounroll_and_jam", 1)
378 0 : .Case("loop", 1)
379 0 : .Case("unroll", 1)
380 0 : .Case("nounroll", 1)
381 0 : .Case("unroll_and_jam", 1)
382 0 : .Case("nounroll_and_jam", 1)
383 0 : .Case("loop", 1)
384 0 : .Case("unroll", 1)
385 0 : .Case("nounroll", 1)
386 0 : .Case("unroll_and_jam", 1)
387 0 : .Case("nounroll_and_jam", 1)
388 0 : .Case("loop", 1)
389 0 : .Case("unroll", 1)
390 0 : .Case("nounroll", 1)
391 0 : .Case("unroll_and_jam", 1)
392 0 : .Case("nounroll_and_jam", 1)
393 0 : .Case("declare simd", 1)
394 0 : .Case("declare target", 1)
395 : .Default(0);
396 5916 : case AttrSyntax::CXX: {
397 5916 : if (!Scope || Scope->getName() == "") {
398 5835 : return llvm::StringSwitch<int>(Name)
399 5835 : .Case("noreturn", LangOpts.CPlusPlus11 ? 200809 : 0)
400 5835 : .Case("carries_dependency", LangOpts.CPlusPlus11 ? 200809 : 0)
401 5835 : .Case("deprecated", LangOpts.CPlusPlus11 ? 201309 : 0)
402 5835 : .Case("deprecated", LangOpts.CPlusPlus11 ? 201309 : 0)
403 5835 : .Case("fallthrough", LangOpts.CPlusPlus11 ? 201603 : 0)
404 5835 : .Case("fallthrough", LangOpts.CPlusPlus11 ? 201603 : 0)
405 5835 : .Case("maybe_unused", LangOpts.CPlusPlus11 ? 201603 : 0)
406 5835 : .Case("unused", LangOpts.CPlusPlus11 ? 201603 : 0)
407 5835 : .Case("nodiscard", LangOpts.CPlusPlus11 ? 201603 : 0)
408 5835 : .Case("warn_unused_result", LangOpts.CPlusPlus11 ? 201603 : 0)
409 11670 : .Case("warn_unused_result", LangOpts.CPlusPlus11 ? 201603 : 0)
410 : .Default(0);
411 81 : } else if (Scope->getName() == "clang") {
412 33 : return llvm::StringSwitch<int>(Name)
413 33 : .Case("amdgpu_flat_work_group_size", LangOpts.CPlusPlus11 ? 1 : 0)
414 33 : .Case("amdgpu_num_sgpr", LangOpts.CPlusPlus11 ? 1 : 0)
415 33 : .Case("amdgpu_num_vgpr", LangOpts.CPlusPlus11 ? 1 : 0)
416 33 : .Case("amdgpu_waves_per_eu", LangOpts.CPlusPlus11 ? 1 : 0)
417 33 : .Case("acquire_capability", LangOpts.CPlusPlus11 ? 1 : 0)
418 33 : .Case("acquire_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
419 33 : .Case("acquire_capability", LangOpts.CPlusPlus11 ? 1 : 0)
420 33 : .Case("acquire_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
421 33 : .Case("address_space", LangOpts.CPlusPlus11 ? 1 : 0)
422 33 : .Case("always_destroy", LangOpts.CPlusPlus11 ? 1 : 0)
423 33 : .Case("annotate", LangOpts.CPlusPlus11 ? 1 : 0)
424 33 : .Case("objc_arc_weak_reference_unavailable", LangOpts.CPlusPlus11 ? 1 : 0)
425 33 : .Case("argument_with_type_tag", LangOpts.CPlusPlus11 ? 1 : 0)
426 33 : .Case("pointer_with_type_tag", LangOpts.CPlusPlus11 ? 1 : 0)
427 33 : .Case("argument_with_type_tag", LangOpts.CPlusPlus11 ? 1 : 0)
428 33 : .Case("pointer_with_type_tag", LangOpts.CPlusPlus11 ? 1 : 0)
429 33 : .Case("assert_capability", LangOpts.CPlusPlus11 ? 1 : 0)
430 33 : .Case("assert_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
431 33 : .Case("assert_capability", LangOpts.CPlusPlus11 ? 1 : 0)
432 33 : .Case("assert_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
433 33 : .Case("availability", LangOpts.CPlusPlus11 ? 1 : 0)
434 33 : .Case("blocks", LangOpts.CPlusPlus11 ? 1 : 0)
435 33 : .Case("cf_audited_transfer", LangOpts.CPlusPlus11 ? 1 : 0)
436 33 : .Case("cf_consumed", LangOpts.CPlusPlus11 ? 1 : 0)
437 33 : .Case("cf_returns_not_retained", LangOpts.CPlusPlus11 ? 1 : 0)
438 33 : .Case("cf_returns_retained", LangOpts.CPlusPlus11 ? 1 : 0)
439 33 : .Case("cf_unknown_transfer", LangOpts.CPlusPlus11 ? 1 : 0)
440 33 : .Case("cpu_dispatch", LangOpts.CPlusPlus11 ? 1 : 0)
441 33 : .Case("cpu_specific", LangOpts.CPlusPlus11 ? 1 : 0)
442 33 : .Case("callable_when", LangOpts.CPlusPlus11 ? 1 : 0)
443 33 : .Case("capability", LangOpts.CPlusPlus11 ? 1 : 0)
444 33 : .Case("shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
445 33 : .Case("capability", LangOpts.CPlusPlus11 ? 1 : 0)
446 33 : .Case("shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
447 33 : .Case("consumable", LangOpts.CPlusPlus11 ? 1 : 0)
448 33 : .Case("consumable_auto_cast_state", LangOpts.CPlusPlus11 ? 1 : 0)
449 33 : .Case("consumable_set_state_on_read", LangOpts.CPlusPlus11 ? 1 : 0)
450 33 : .Case("convergent", LangOpts.CPlusPlus11 ? 1 : 0)
451 33 : .Case("disable_tail_calls", LangOpts.CPlusPlus11 ? 1 : 0)
452 33 : .Case("enum_extensibility", LangOpts.CPlusPlus11 ? 1 : 0)
453 33 : .Case("exclude_from_explicit_instantiation", LangOpts.CPlusPlus11 ? 1 : 0)
454 33 : .Case("external_source_symbol", LangOpts.CPlusPlus11 ? 1 : 0)
455 33 : .Case("fallthrough", LangOpts.CPlusPlus11 ? 201603 : 0)
456 33 : .Case("flag_enum", LangOpts.CPlusPlus11 ? 1 : 0)
457 33 : .Case("guarded_var", LangOpts.CPlusPlus11 ? 1 : 0)
458 33 : .Case("ibaction", LangOpts.CPlusPlus11 ? 1 : 0)
459 33 : .Case("iboutlet", LangOpts.CPlusPlus11 ? 1 : 0)
460 33 : .Case("iboutletcollection", LangOpts.CPlusPlus11 ? 1 : 0)
461 33 : .Case("intel_ocl_bicc", LangOpts.CPlusPlus11 ? 1 : 0)
462 33 : .Case("internal_linkage", LangOpts.CPlusPlus11 ? 1 : 0)
463 33 : .Case("lto_visibility_public", LangOpts.CPlusPlus11 ? 1 : 0)
464 33 : .Case("lifetimebound", LangOpts.CPlusPlus11 ? 1 : 0)
465 33 : .Case("minsize", LangOpts.CPlusPlus11 ? 1 : 0)
466 33 : .Case("min_vector_width", LangOpts.CPlusPlus11 ? 1 : 0)
467 33 : .Case("ns_consumed", LangOpts.CPlusPlus11 ? 1 : 0)
468 33 : .Case("ns_consumes_self", LangOpts.CPlusPlus11 ? 1 : 0)
469 33 : .Case("ns_returns_autoreleased", LangOpts.CPlusPlus11 ? 1 : 0)
470 33 : .Case("ns_returns_not_retained", LangOpts.CPlusPlus11 ? 1 : 0)
471 33 : .Case("ns_returns_retained", LangOpts.CPlusPlus11 ? 1 : 0)
472 33 : .Case("neon_polyvector_type", LangOpts.CPlusPlus11 ? 1 : 0)
473 33 : .Case("neon_vector_type", LangOpts.CPlusPlus11 ? 1 : 0)
474 33 : .Case("no_destroy", LangOpts.CPlusPlus11 ? 1 : 0)
475 33 : .Case("noduplicate", LangOpts.CPlusPlus11 ? 1 : 0)
476 33 : .Case("noescape", LangOpts.CPlusPlus11 ? 1 : 0)
477 33 : .Case("no_sanitize", LangOpts.CPlusPlus11 ? 1 : 0)
478 33 : .Case("no_sanitize_memory", LangOpts.CPlusPlus11 ? 1 : 0)
479 33 : .Case("no_stack_protector", LangOpts.CPlusPlus11 ? 1 : 0)
480 33 : .Case("no_thread_safety_analysis", LangOpts.CPlusPlus11 ? 1 : 0)
481 33 : .Case("not_tail_called", LangOpts.CPlusPlus11 ? 1 : 0)
482 33 : .Case("objc_boxable", LangOpts.CPlusPlus11 ? 1 : 0)
483 33 : .Case("objc_bridge", LangOpts.CPlusPlus11 ? 1 : 0)
484 33 : .Case("objc_bridge_mutable", LangOpts.CPlusPlus11 ? 1 : 0)
485 33 : .Case("objc_bridge_related", LangOpts.CPlusPlus11 ? 1 : 0)
486 33 : .Case("objc_designated_initializer", LangOpts.CPlusPlus11 ? 1 : 0)
487 33 : .Case("objc_exception", LangOpts.CPlusPlus11 ? 1 : 0)
488 33 : .Case("objc_protocol_requires_explicit_implementation", LangOpts.CPlusPlus11 ? 1 : 0)
489 33 : .Case("objc_gc", LangOpts.CPlusPlus11 ? 1 : 0)
490 33 : .Case("objc_independent_class", LangOpts.CPlusPlus11 ? 1 : 0)
491 33 : .Case("objc_method_family", LangOpts.CPlusPlus11 ? 1 : 0)
492 33 : .Case("NSObject", LangOpts.CPlusPlus11 ? 1 : 0)
493 33 : .Case("objc_ownership", LangOpts.CPlusPlus11 ? 1 : 0)
494 33 : .Case("objc_precise_lifetime", LangOpts.CPlusPlus11 ? 1 : 0)
495 33 : .Case("objc_requires_property_definitions", LangOpts.CPlusPlus11 ? 1 : 0)
496 33 : .Case("objc_requires_super", LangOpts.CPlusPlus11 ? 1 : 0)
497 33 : .Case("objc_returns_inner_pointer", LangOpts.CPlusPlus11 ? 1 : 0)
498 33 : .Case("objc_root_class", LangOpts.CPlusPlus11 ? 1 : 0)
499 33 : .Case("objc_runtime_name", LangOpts.CPlusPlus11 ? 1 : 0)
500 33 : .Case("objc_runtime_visible", LangOpts.CPlusPlus11 ? 1 : 0)
501 33 : .Case("objc_subclassing_restricted", LangOpts.CPlusPlus11 ? 1 : 0)
502 33 : .Case("optnone", LangOpts.CPlusPlus11 ? 1 : 0)
503 33 : .Case("overloadable", LangOpts.CPlusPlus11 ? 1 : 0)
504 33 : .Case("ownership_holds", LangOpts.CPlusPlus11 ? 1 : 0)
505 33 : .Case("ownership_returns", LangOpts.CPlusPlus11 ? 1 : 0)
506 33 : .Case("ownership_takes", LangOpts.CPlusPlus11 ? 1 : 0)
507 33 : .Case("ownership_holds", LangOpts.CPlusPlus11 ? 1 : 0)
508 33 : .Case("ownership_returns", LangOpts.CPlusPlus11 ? 1 : 0)
509 33 : .Case("ownership_takes", LangOpts.CPlusPlus11 ? 1 : 0)
510 33 : .Case("ownership_holds", LangOpts.CPlusPlus11 ? 1 : 0)
511 33 : .Case("ownership_returns", LangOpts.CPlusPlus11 ? 1 : 0)
512 33 : .Case("ownership_takes", LangOpts.CPlusPlus11 ? 1 : 0)
513 33 : .Case("param_typestate", LangOpts.CPlusPlus11 ? 1 : 0)
514 33 : .Case("pascal", LangOpts.CPlusPlus11 ? 1 : 0)
515 33 : .Case("pass_object_size", LangOpts.CPlusPlus11 ? 1 : 0)
516 33 : .Case("preserve_all", LangOpts.CPlusPlus11 ? 1 : 0)
517 33 : .Case("preserve_most", LangOpts.CPlusPlus11 ? 1 : 0)
518 33 : .Case("pt_guarded_var", LangOpts.CPlusPlus11 ? 1 : 0)
519 33 : .Case("reinitializes", LangOpts.CPlusPlus11 ? 1 : 0)
520 33 : .Case("release_capability", LangOpts.CPlusPlus11 ? 1 : 0)
521 33 : .Case("release_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
522 33 : .Case("release_generic_capability", LangOpts.CPlusPlus11 ? 1 : 0)
523 33 : .Case("unlock_function", LangOpts.CPlusPlus11 ? 1 : 0)
524 33 : .Case("release_capability", LangOpts.CPlusPlus11 ? 1 : 0)
525 33 : .Case("release_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
526 33 : .Case("release_generic_capability", LangOpts.CPlusPlus11 ? 1 : 0)
527 33 : .Case("unlock_function", LangOpts.CPlusPlus11 ? 1 : 0)
528 33 : .Case("release_capability", LangOpts.CPlusPlus11 ? 1 : 0)
529 33 : .Case("release_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
530 33 : .Case("release_generic_capability", LangOpts.CPlusPlus11 ? 1 : 0)
531 33 : .Case("unlock_function", LangOpts.CPlusPlus11 ? 1 : 0)
532 33 : .Case("release_capability", LangOpts.CPlusPlus11 ? 1 : 0)
533 33 : .Case("release_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
534 33 : .Case("release_generic_capability", LangOpts.CPlusPlus11 ? 1 : 0)
535 33 : .Case("unlock_function", LangOpts.CPlusPlus11 ? 1 : 0)
536 33 : .Case("require_constant_initialization", LangOpts.CPlusPlus11 ? 1 : 0)
537 33 : .Case("requires_capability", LangOpts.CPlusPlus11 ? 1 : 0)
538 33 : .Case("exclusive_locks_required", LangOpts.CPlusPlus11 ? 1 : 0)
539 33 : .Case("requires_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
540 33 : .Case("shared_locks_required", LangOpts.CPlusPlus11 ? 1 : 0)
541 33 : .Case("requires_capability", LangOpts.CPlusPlus11 ? 1 : 0)
542 33 : .Case("exclusive_locks_required", LangOpts.CPlusPlus11 ? 1 : 0)
543 33 : .Case("requires_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
544 33 : .Case("shared_locks_required", LangOpts.CPlusPlus11 ? 1 : 0)
545 33 : .Case("requires_capability", LangOpts.CPlusPlus11 ? 1 : 0)
546 33 : .Case("exclusive_locks_required", LangOpts.CPlusPlus11 ? 1 : 0)
547 33 : .Case("requires_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
548 33 : .Case("shared_locks_required", LangOpts.CPlusPlus11 ? 1 : 0)
549 33 : .Case("requires_capability", LangOpts.CPlusPlus11 ? 1 : 0)
550 33 : .Case("exclusive_locks_required", LangOpts.CPlusPlus11 ? 1 : 0)
551 33 : .Case("requires_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
552 33 : .Case("shared_locks_required", LangOpts.CPlusPlus11 ? 1 : 0)
553 33 : .Case("return_typestate", LangOpts.CPlusPlus11 ? 1 : 0)
554 33 : .Case("scoped_lockable", LangOpts.CPlusPlus11 ? 1 : 0)
555 33 : .Case("set_typestate", LangOpts.CPlusPlus11 ? 1 : 0)
556 33 : .Case("swiftcall", LangOpts.CPlusPlus11 ? 1 : 0)
557 33 : .Case("swift_context", LangOpts.CPlusPlus11 ? 1 : 0)
558 33 : .Case("swift_error_result", LangOpts.CPlusPlus11 ? 1 : 0)
559 33 : .Case("swift_indirect_result", LangOpts.CPlusPlus11 ? 1 : 0)
560 33 : .Case("test_typestate", LangOpts.CPlusPlus11 ? 1 : 0)
561 33 : .Case("trivial_abi", LangOpts.CPlusPlus11 ? 1 : 0)
562 33 : .Case("try_acquire_capability", LangOpts.CPlusPlus11 ? 1 : 0)
563 33 : .Case("try_acquire_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
564 33 : .Case("try_acquire_capability", LangOpts.CPlusPlus11 ? 1 : 0)
565 33 : .Case("try_acquire_shared_capability", LangOpts.CPlusPlus11 ? 1 : 0)
566 33 : .Case("type_tag_for_datatype", LangOpts.CPlusPlus11 ? 1 : 0)
567 33 : .Case("type_visibility", LangOpts.CPlusPlus11 ? 1 : 0)
568 33 : .Case("unavailable", LangOpts.CPlusPlus11 ? 1 : 0)
569 33 : .Case("vecreturn", LangOpts.CPlusPlus11 ? 1 : 0)
570 33 : .Case("vectorcall", LangOpts.CPlusPlus11 ? 1 : 0)
571 33 : .Case("warn_unused_result", LangOpts.CPlusPlus11 ? 201603 : 0)
572 33 : .Case("weak_import", LangOpts.CPlusPlus11 ? 1 : 0)
573 33 : .Case("xray_always_instrument", LangOpts.CPlusPlus11 ? 1 : 0)
574 33 : .Case("xray_never_instrument", LangOpts.CPlusPlus11 ? 1 : 0)
575 33 : .Case("xray_always_instrument", LangOpts.CPlusPlus11 ? 1 : 0)
576 33 : .Case("xray_never_instrument", LangOpts.CPlusPlus11 ? 1 : 0)
577 43 : .Case("xray_log_args", LangOpts.CPlusPlus11 ? 1 : 0)
578 : .Default(0);
579 48 : } else if (Scope->getName() == "gnu") {
580 29 : return llvm::StringSwitch<int>(Name)
581 29 : .Case("interrupt", true && (T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb || T.getArch() == llvm::Triple::armeb || T.getArch() == llvm::Triple::thumbeb) && LangOpts.CPlusPlus11 ? 1 : 0)
582 29 : .Case("interrupt", true && (T.getArch() == llvm::Triple::avr) && LangOpts.CPlusPlus11 ? 1 : 0)
583 29 : .Case("signal", true && (T.getArch() == llvm::Triple::avr) && LangOpts.CPlusPlus11 ? 1 : 0)
584 29 : .Case("abi_tag", LangOpts.CPlusPlus11 ? 1 : 0)
585 29 : .Case("alias", LangOpts.CPlusPlus11 ? 1 : 0)
586 29 : .Case("aligned", LangOpts.CPlusPlus11 ? 1 : 0)
587 29 : .Case("alloc_align", LangOpts.CPlusPlus11 ? 1 : 0)
588 29 : .Case("alloc_size", LangOpts.CPlusPlus11 ? 1 : 0)
589 29 : .Case("always_inline", LangOpts.CPlusPlus11 ? 1 : 0)
590 29 : .Case("interrupt", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) && LangOpts.CPlusPlus11 ? 1 : 0)
591 29 : .Case("no_caller_saved_registers", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) && LangOpts.CPlusPlus11 ? 1 : 0)
592 29 : .Case("nocf_check", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) && LangOpts.CPlusPlus11 ? 1 : 0)
593 29 : .Case("artificial", LangOpts.CPlusPlus11 ? 1 : 0)
594 29 : .Case("assume_aligned", LangOpts.CPlusPlus11 ? 1 : 0)
595 29 : .Case("cdecl", LangOpts.CPlusPlus11 ? 1 : 0)
596 29 : .Case("cleanup", LangOpts.CPlusPlus11 ? 1 : 0)
597 29 : .Case("cold", LangOpts.CPlusPlus11 ? 1 : 0)
598 29 : .Case("common", LangOpts.CPlusPlus11 ? 1 : 0)
599 29 : .Case("const", LangOpts.CPlusPlus11 ? 1 : 0)
600 29 : .Case("__const", LangOpts.CPlusPlus11 ? 1 : 0)
601 29 : .Case("const", LangOpts.CPlusPlus11 ? 1 : 0)
602 29 : .Case("__const", LangOpts.CPlusPlus11 ? 1 : 0)
603 29 : .Case("constructor", LangOpts.CPlusPlus11 ? 1 : 0)
604 29 : .Case("dllexport", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb || T.getArch() == llvm::Triple::aarch64) && (T.getOS() == llvm::Triple::Win32) && LangOpts.CPlusPlus11 ? 1 : 0)
605 29 : .Case("dllimport", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64 || T.getArch() == llvm::Triple::arm || T.getArch() == llvm::Triple::thumb || T.getArch() == llvm::Triple::aarch64) && (T.getOS() == llvm::Triple::Win32) && LangOpts.CPlusPlus11 ? 1 : 0)
606 29 : .Case("deprecated", LangOpts.CPlusPlus11 ? 201309 : 0)
607 29 : .Case("destructor", LangOpts.CPlusPlus11 ? 1 : 0)
608 29 : .Case("fastcall", LangOpts.CPlusPlus11 ? 1 : 0)
609 29 : .Case("flatten", LangOpts.CPlusPlus11 ? 1 : 0)
610 29 : .Case("format", LangOpts.CPlusPlus11 ? 1 : 0)
611 29 : .Case("format_arg", LangOpts.CPlusPlus11 ? 1 : 0)
612 29 : .Case("gnu_inline", LangOpts.CPlusPlus11 ? 1 : 0)
613 29 : .Case("hot", LangOpts.CPlusPlus11 ? 1 : 0)
614 29 : .Case("ifunc", true && (T.getObjectFormat() == llvm::Triple::ELF) && LangOpts.CPlusPlus11 ? 1 : 0)
615 29 : .Case("init_priority", LangOpts.CPlusPlus11 ? 1 : 0)
616 29 : .Case("ms_abi", LangOpts.CPlusPlus11 ? 1 : 0)
617 29 : .Case("interrupt", true && (T.getArch() == llvm::Triple::msp430) && LangOpts.CPlusPlus11 ? 1 : 0)
618 29 : .Case("ms_struct", LangOpts.CPlusPlus11 ? 1 : 0)
619 29 : .Case("may_alias", LangOpts.CPlusPlus11 ? 1 : 0)
620 29 : .Case("micromips", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) && LangOpts.CPlusPlus11 ? 1 : 0)
621 29 : .Case("mips16", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) && LangOpts.CPlusPlus11 ? 1 : 0)
622 29 : .Case("interrupt", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) && LangOpts.CPlusPlus11 ? 1 : 0)
623 29 : .Case("long_call", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel || T.getArch() == llvm::Triple::mips64 || T.getArch() == llvm::Triple::mips64el) && LangOpts.CPlusPlus11 ? 1 : 0)
624 29 : .Case("far", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel || T.getArch() == llvm::Triple::mips64 || T.getArch() == llvm::Triple::mips64el) && LangOpts.CPlusPlus11 ? 1 : 0)
625 29 : .Case("long_call", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel || T.getArch() == llvm::Triple::mips64 || T.getArch() == llvm::Triple::mips64el) && LangOpts.CPlusPlus11 ? 1 : 0)
626 29 : .Case("far", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel || T.getArch() == llvm::Triple::mips64 || T.getArch() == llvm::Triple::mips64el) && LangOpts.CPlusPlus11 ? 1 : 0)
627 29 : .Case("short_call", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel || T.getArch() == llvm::Triple::mips64 || T.getArch() == llvm::Triple::mips64el) && LangOpts.CPlusPlus11 ? 1 : 0)
628 29 : .Case("near", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel || T.getArch() == llvm::Triple::mips64 || T.getArch() == llvm::Triple::mips64el) && LangOpts.CPlusPlus11 ? 1 : 0)
629 29 : .Case("short_call", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel || T.getArch() == llvm::Triple::mips64 || T.getArch() == llvm::Triple::mips64el) && LangOpts.CPlusPlus11 ? 1 : 0)
630 29 : .Case("near", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel || T.getArch() == llvm::Triple::mips64 || T.getArch() == llvm::Triple::mips64el) && LangOpts.CPlusPlus11 ? 1 : 0)
631 29 : .Case("mode", LangOpts.CPlusPlus11 ? 1 : 0)
632 29 : .Case("naked", LangOpts.CPlusPlus11 ? 1 : 0)
633 29 : .Case("nocommon", LangOpts.CPlusPlus11 ? 1 : 0)
634 29 : .Case("nodebug", LangOpts.CPlusPlus11 ? 1 : 0)
635 29 : .Case("noinline", LangOpts.CPlusPlus11 ? 1 : 0)
636 29 : .Case("no_instrument_function", LangOpts.CPlusPlus11 ? 1 : 0)
637 29 : .Case("nomicromips", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) && LangOpts.CPlusPlus11 ? 1 : 0)
638 29 : .Case("nomips16", true && (T.getArch() == llvm::Triple::mips || T.getArch() == llvm::Triple::mipsel) && LangOpts.CPlusPlus11 ? 1 : 0)
639 29 : .Case("noreturn", LangOpts.CPlusPlus11 ? 1 : 0)
640 29 : .Case("no_address_safety_analysis", LangOpts.CPlusPlus11 ? 1 : 0)
641 29 : .Case("no_sanitize_address", LangOpts.CPlusPlus11 ? 1 : 0)
642 29 : .Case("no_sanitize_thread", LangOpts.CPlusPlus11 ? 1 : 0)
643 29 : .Case("no_address_safety_analysis", LangOpts.CPlusPlus11 ? 1 : 0)
644 29 : .Case("no_sanitize_address", LangOpts.CPlusPlus11 ? 1 : 0)
645 29 : .Case("no_sanitize_thread", LangOpts.CPlusPlus11 ? 1 : 0)
646 29 : .Case("no_address_safety_analysis", LangOpts.CPlusPlus11 ? 1 : 0)
647 29 : .Case("no_sanitize_address", LangOpts.CPlusPlus11 ? 1 : 0)
648 29 : .Case("no_sanitize_thread", LangOpts.CPlusPlus11 ? 1 : 0)
649 29 : .Case("no_split_stack", LangOpts.CPlusPlus11 ? 1 : 0)
650 29 : .Case("nothrow", LangOpts.CPlusPlus11 ? 1 : 0)
651 29 : .Case("nonnull", LangOpts.CPlusPlus11 ? 1 : 0)
652 29 : .Case("packed", LangOpts.CPlusPlus11 ? 1 : 0)
653 29 : .Case("pcs", LangOpts.CPlusPlus11 ? 1 : 0)
654 29 : .Case("pure", LangOpts.CPlusPlus11 ? 1 : 0)
655 29 : .Case("interrupt", true && (T.getArch() == llvm::Triple::riscv32 || T.getArch() == llvm::Triple::riscv64) && LangOpts.CPlusPlus11 ? 1 : 0)
656 29 : .Case("regcall", LangOpts.CPlusPlus11 ? 1 : 0)
657 29 : .Case("regparm", LangOpts.CPlusPlus11 ? 1 : 0)
658 29 : .Case("malloc", LangOpts.CPlusPlus11 ? 1 : 0)
659 29 : .Case("returns_nonnull", LangOpts.CPlusPlus11 ? 1 : 0)
660 29 : .Case("returns_twice", LangOpts.CPlusPlus11 ? 1 : 0)
661 29 : .Case("section", LangOpts.CPlusPlus11 ? 1 : 0)
662 29 : .Case("selectany", LangOpts.CPlusPlus11 ? 1 : 0)
663 29 : .Case("sentinel", LangOpts.CPlusPlus11 ? 1 : 0)
664 29 : .Case("stdcall", LangOpts.CPlusPlus11 ? 1 : 0)
665 29 : .Case("sysv_abi", LangOpts.CPlusPlus11 ? 1 : 0)
666 29 : .Case("tls_model", LangOpts.CPlusPlus11 ? 1 : 0)
667 29 : .Case("target", LangOpts.CPlusPlus11 ? 1 : 0)
668 29 : .Case("thiscall", LangOpts.CPlusPlus11 ? 1 : 0)
669 29 : .Case("transparent_union", LangOpts.CPlusPlus11 ? 1 : 0)
670 29 : .Case("unused", LangOpts.CPlusPlus11 ? 201603 : 0)
671 29 : .Case("used", LangOpts.CPlusPlus11 ? 1 : 0)
672 29 : .Case("vector_size", LangOpts.CPlusPlus11 ? 1 : 0)
673 29 : .Case("visibility", LangOpts.CPlusPlus11 ? 1 : 0)
674 29 : .Case("warn_unused", LangOpts.CPlusPlus11 ? 1 : 0)
675 29 : .Case("warn_unused_result", LangOpts.CPlusPlus11 ? 201603 : 0)
676 29 : .Case("weak", LangOpts.CPlusPlus11 ? 1 : 0)
677 29 : .Case("weakref", LangOpts.CPlusPlus11 ? 1 : 0)
678 58 : .Case("force_align_arg_pointer", true && (T.getArch() == llvm::Triple::x86 || T.getArch() == llvm::Triple::x86_64) && LangOpts.CPlusPlus11 ? 1 : 0)
679 : .Default(0);
680 19 : } else if (Scope->getName() == "gsl") {
681 11 : return llvm::StringSwitch<int>(Name)
682 22 : .Case("suppress", LangOpts.CPlusPlus11 ? 1 : 0)
683 : .Default(0);
684 : }
685 : } break;
686 49 : case AttrSyntax::C: {
687 49 : if (!Scope || Scope->getName() == "") {
688 8 : return llvm::StringSwitch<int>(Name)
689 8 : .Case("deprecated", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
690 8 : .Case("fallthrough", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
691 8 : .Case("maybe_unused", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
692 10 : .Case("nodiscard", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
693 : .Default(0);
694 41 : } else if (Scope->getName() == "clang") {
695 41 : return llvm::StringSwitch<int>(Name)
696 41 : .Case("address_space", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
697 41 : .Case("annotate", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
698 41 : .Case("objc_arc_weak_reference_unavailable", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
699 41 : .Case("argument_with_type_tag", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
700 41 : .Case("pointer_with_type_tag", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
701 41 : .Case("argument_with_type_tag", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
702 41 : .Case("pointer_with_type_tag", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
703 41 : .Case("availability", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
704 41 : .Case("blocks", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
705 41 : .Case("cf_audited_transfer", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
706 41 : .Case("cf_consumed", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
707 41 : .Case("cf_returns_not_retained", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
708 41 : .Case("cf_returns_retained", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
709 41 : .Case("cf_unknown_transfer", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
710 41 : .Case("cpu_dispatch", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
711 41 : .Case("cpu_specific", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
712 41 : .Case("convergent", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
713 41 : .Case("disable_tail_calls", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
714 41 : .Case("enum_extensibility", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
715 41 : .Case("exclude_from_explicit_instantiation", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
716 41 : .Case("external_source_symbol", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
717 41 : .Case("flag_enum", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
718 41 : .Case("ibaction", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
719 41 : .Case("iboutlet", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
720 41 : .Case("iboutletcollection", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
721 41 : .Case("internal_linkage", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
722 41 : .Case("lto_visibility_public", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
723 41 : .Case("minsize", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
724 41 : .Case("min_vector_width", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
725 41 : .Case("ns_consumed", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
726 41 : .Case("ns_consumes_self", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
727 41 : .Case("ns_returns_autoreleased", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
728 41 : .Case("ns_returns_not_retained", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
729 41 : .Case("ns_returns_retained", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
730 41 : .Case("neon_polyvector_type", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
731 41 : .Case("neon_vector_type", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
732 41 : .Case("noduplicate", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
733 41 : .Case("noescape", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
734 41 : .Case("no_sanitize", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
735 41 : .Case("no_sanitize_memory", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
736 41 : .Case("no_stack_protector", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
737 41 : .Case("no_thread_safety_analysis", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
738 41 : .Case("not_tail_called", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
739 41 : .Case("objc_boxable", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
740 41 : .Case("objc_bridge", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
741 41 : .Case("objc_bridge_mutable", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
742 41 : .Case("objc_bridge_related", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
743 41 : .Case("objc_designated_initializer", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
744 41 : .Case("objc_exception", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
745 41 : .Case("objc_protocol_requires_explicit_implementation", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
746 41 : .Case("objc_gc", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
747 41 : .Case("objc_independent_class", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
748 41 : .Case("objc_method_family", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
749 41 : .Case("NSObject", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
750 41 : .Case("objc_ownership", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
751 41 : .Case("objc_precise_lifetime", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
752 41 : .Case("objc_requires_property_definitions", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
753 41 : .Case("objc_requires_super", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
754 41 : .Case("objc_returns_inner_pointer", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
755 41 : .Case("objc_root_class", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
756 41 : .Case("objc_runtime_name", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
757 41 : .Case("objc_runtime_visible", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
758 41 : .Case("objc_subclassing_restricted", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
759 41 : .Case("optnone", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
760 41 : .Case("overloadable", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
761 41 : .Case("ownership_holds", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
762 41 : .Case("ownership_returns", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
763 41 : .Case("ownership_takes", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
764 41 : .Case("ownership_holds", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
765 41 : .Case("ownership_returns", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
766 41 : .Case("ownership_takes", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
767 41 : .Case("ownership_holds", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
768 41 : .Case("ownership_returns", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
769 41 : .Case("ownership_takes", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
770 41 : .Case("pascal", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
771 41 : .Case("pass_object_size", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
772 41 : .Case("preserve_all", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
773 41 : .Case("preserve_most", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
774 41 : .Case("swiftcall", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
775 41 : .Case("swift_context", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
776 41 : .Case("swift_error_result", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
777 41 : .Case("swift_indirect_result", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
778 41 : .Case("type_tag_for_datatype", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
779 41 : .Case("type_visibility", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
780 41 : .Case("unavailable", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
781 41 : .Case("vectorcall", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
782 41 : .Case("weak_import", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
783 41 : .Case("xray_always_instrument", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
784 41 : .Case("xray_never_instrument", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
785 41 : .Case("xray_always_instrument", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
786 41 : .Case("xray_never_instrument", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
787 41 : .Case("xray_log_args", LangOpts.DoubleSquareBracketAttributes ? 1 : 0)
788 : .Default(0);
789 : }
790 : } break;
791 : }
|