1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* Code to translate different attribute spellings into internal identifiers *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* From: Attr.td *|
7|* *|
8\*===----------------------------------------------------------------------===*/
9
10 switch (getParsedKind()) {
11 case IgnoredAttribute:
12 case UnknownAttribute:
13 case NoSemaHandlerAttribute:
14 llvm_unreachable("Ignored/unknown shouldn't get here");
15 case AT_AArch64SVEPcs: {
16 if (Name == "aarch64_sve_pcs" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
17 return 0;
18 if (Name == "aarch64_sve_pcs" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
19 return 1;
20 if (Name == "aarch64_sve_pcs" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
21 return 2;
22 break;
23 }
24 case AT_AArch64VectorPcs: {
25 if (Name == "aarch64_vector_pcs" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
26 return 0;
27 if (Name == "aarch64_vector_pcs" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
28 return 1;
29 if (Name == "aarch64_vector_pcs" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
30 return 2;
31 break;
32 }
33 case AT_AMDGPUFlatWorkGroupSize: {
34 if (Name == "amdgpu_flat_work_group_size" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
35 return 0;
36 if (Name == "amdgpu_flat_work_group_size" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
37 return 1;
38 break;
39 }
40 case AT_AMDGPUKernelCall: {
41 if (Name == "amdgpu_kernel" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
42 return 0;
43 if (Name == "amdgpu_kernel" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
44 return 1;
45 if (Name == "amdgpu_kernel" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
46 return 2;
47 break;
48 }
49 case AT_AMDGPUMaxNumWorkGroups: {
50 if (Name == "amdgpu_max_num_work_groups" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
51 return 0;
52 if (Name == "amdgpu_max_num_work_groups" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
53 return 1;
54 break;
55 }
56 case AT_AMDGPUNumSGPR: {
57 if (Name == "amdgpu_num_sgpr" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
58 return 0;
59 if (Name == "amdgpu_num_sgpr" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
60 return 1;
61 break;
62 }
63 case AT_AMDGPUNumVGPR: {
64 if (Name == "amdgpu_num_vgpr" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
65 return 0;
66 if (Name == "amdgpu_num_vgpr" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
67 return 1;
68 break;
69 }
70 case AT_AMDGPUWavesPerEU: {
71 if (Name == "amdgpu_waves_per_eu" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
72 return 0;
73 if (Name == "amdgpu_waves_per_eu" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
74 return 1;
75 break;
76 }
77 case AT_Interrupt: {
78 if (Name == "interrupt" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
79 return 0;
80 if (Name == "interrupt" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
81 return 1;
82 if (Name == "interrupt" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
83 return 2;
84 break;
85 }
86 case AT_AVRSignal: {
87 if (Name == "signal" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
88 return 0;
89 if (Name == "signal" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
90 return 1;
91 if (Name == "signal" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
92 return 2;
93 break;
94 }
95 case AT_AbiTag: {
96 if (Name == "abi_tag" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
97 return 0;
98 if (Name == "abi_tag" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
99 return 1;
100 break;
101 }
102 case AT_AcquireCapability: {
103 if (Name == "acquire_capability" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
104 return 0;
105 if (Name == "acquire_capability" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
106 return 1;
107 if (Name == "acquire_shared_capability" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
108 return 2;
109 if (Name == "acquire_shared_capability" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
110 return 3;
111 if (Name == "exclusive_lock_function" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
112 return 4;
113 if (Name == "shared_lock_function" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
114 return 5;
115 break;
116 }
117 case AT_AcquireHandle: {
118 if (Name == "acquire_handle" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
119 return 0;
120 if (Name == "acquire_handle" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
121 return 1;
122 if (Name == "acquire_handle" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
123 return 2;
124 break;
125 }
126 case AT_AcquiredAfter: {
127 if (Name == "acquired_after" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
128 return 0;
129 break;
130 }
131 case AT_AcquiredBefore: {
132 if (Name == "acquired_before" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
133 return 0;
134 break;
135 }
136 case AT_AddressSpace: {
137 if (Name == "address_space" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
138 return 0;
139 if (Name == "address_space" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
140 return 1;
141 if (Name == "address_space" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
142 return 2;
143 break;
144 }
145 case AT_Alias: {
146 if (Name == "alias" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
147 return 0;
148 if (Name == "alias" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
149 return 1;
150 if (Name == "alias" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
151 return 2;
152 break;
153 }
154 case AT_AlignValue: {
155 if (Name == "align_value" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
156 return 0;
157 break;
158 }
159 case AT_Aligned: {
160 if (Name == "aligned" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
161 return 0;
162 if (Name == "aligned" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
163 return 1;
164 if (Name == "aligned" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
165 return 2;
166 if (Name == "align" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
167 return 3;
168 if (Name == "alignas" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
169 return 4;
170 if (Name == "_Alignas" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
171 return 5;
172 break;
173 }
174 case AT_AllocAlign: {
175 if (Name == "alloc_align" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
176 return 0;
177 if (Name == "alloc_align" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
178 return 1;
179 if (Name == "alloc_align" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
180 return 2;
181 break;
182 }
183 case AT_AllocSize: {
184 if (Name == "alloc_size" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
185 return 0;
186 if (Name == "alloc_size" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
187 return 1;
188 if (Name == "alloc_size" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
189 return 2;
190 break;
191 }
192 case AT_Allocating: {
193 if (Name == "allocating" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
194 return 0;
195 if (Name == "allocating" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
196 return 1;
197 if (Name == "allocating" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
198 return 2;
199 break;
200 }
201 case AT_AlwaysDestroy: {
202 if (Name == "always_destroy" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
203 return 0;
204 if (Name == "always_destroy" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
205 return 1;
206 break;
207 }
208 case AT_AlwaysInline: {
209 if (Name == "always_inline" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
210 return 0;
211 if (Name == "always_inline" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
212 return 1;
213 if (Name == "always_inline" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
214 return 2;
215 if (Name == "always_inline" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
216 return 3;
217 if (Name == "always_inline" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
218 return 4;
219 if (Name == "__forceinline" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
220 return 5;
221 break;
222 }
223 case AT_AnalyzerNoReturn: {
224 if (Name == "analyzer_noreturn" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
225 return 0;
226 break;
227 }
228 case AT_Annotate: {
229 if (Name == "annotate" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
230 return 0;
231 if (Name == "annotate" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
232 return 1;
233 if (Name == "annotate" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
234 return 2;
235 break;
236 }
237 case AT_AnnotateType: {
238 if (Name == "annotate_type" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
239 return 0;
240 if (Name == "annotate_type" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
241 return 1;
242 break;
243 }
244 case AT_AnyX86NoCallerSavedRegisters: {
245 if (Name == "no_caller_saved_registers" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
246 return 0;
247 if (Name == "no_caller_saved_registers" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
248 return 1;
249 if (Name == "no_caller_saved_registers" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
250 return 2;
251 break;
252 }
253 case AT_AnyX86NoCfCheck: {
254 if (Name == "nocf_check" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
255 return 0;
256 if (Name == "nocf_check" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
257 return 1;
258 if (Name == "nocf_check" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
259 return 2;
260 break;
261 }
262 case AT_ArcWeakrefUnavailable: {
263 if (Name == "objc_arc_weak_reference_unavailable" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
264 return 0;
265 if (Name == "objc_arc_weak_reference_unavailable" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
266 return 1;
267 if (Name == "objc_arc_weak_reference_unavailable" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
268 return 2;
269 break;
270 }
271 case AT_ArgumentWithTypeTag: {
272 if (Name == "argument_with_type_tag" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
273 return 0;
274 if (Name == "argument_with_type_tag" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
275 return 1;
276 if (Name == "argument_with_type_tag" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
277 return 2;
278 if (Name == "pointer_with_type_tag" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
279 return 3;
280 if (Name == "pointer_with_type_tag" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
281 return 4;
282 if (Name == "pointer_with_type_tag" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
283 return 5;
284 break;
285 }
286 case AT_ArmBuiltinAlias: {
287 if (Name == "__clang_arm_builtin_alias" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
288 return 0;
289 if (Name == "__clang_arm_builtin_alias" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
290 return 1;
291 if (Name == "__clang_arm_builtin_alias" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
292 return 2;
293 break;
294 }
295 case AT_ArmIn: {
296 if (Name == "__arm_in" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
297 return 0;
298 break;
299 }
300 case AT_ArmInOut: {
301 if (Name == "__arm_inout" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
302 return 0;
303 break;
304 }
305 case AT_ArmLocallyStreaming: {
306 if (Name == "__arm_locally_streaming" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
307 return 0;
308 break;
309 }
310 case AT_ArmMveStrictPolymorphism: {
311 if (Name == "__clang_arm_mve_strict_polymorphism" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
312 return 0;
313 if (Name == "__clang_arm_mve_strict_polymorphism" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
314 return 1;
315 if (Name == "__clang_arm_mve_strict_polymorphism" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
316 return 2;
317 break;
318 }
319 case AT_ArmNew: {
320 if (Name == "__arm_new" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
321 return 0;
322 break;
323 }
324 case AT_ArmOut: {
325 if (Name == "__arm_out" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
326 return 0;
327 break;
328 }
329 case AT_ArmPreserves: {
330 if (Name == "__arm_preserves" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
331 return 0;
332 break;
333 }
334 case AT_ArmStreaming: {
335 if (Name == "__arm_streaming" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
336 return 0;
337 break;
338 }
339 case AT_ArmStreamingCompatible: {
340 if (Name == "__arm_streaming_compatible" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
341 return 0;
342 break;
343 }
344 case AT_ArmSveVectorBits: {
345 if (Name == "arm_sve_vector_bits" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
346 return 0;
347 break;
348 }
349 case AT_Artificial: {
350 if (Name == "artificial" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
351 return 0;
352 if (Name == "artificial" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
353 return 1;
354 if (Name == "artificial" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
355 return 2;
356 break;
357 }
358 case AT_AssertCapability: {
359 if (Name == "assert_capability" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
360 return 0;
361 if (Name == "assert_capability" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
362 return 1;
363 if (Name == "assert_shared_capability" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
364 return 2;
365 if (Name == "assert_shared_capability" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
366 return 3;
367 break;
368 }
369 case AT_AssertExclusiveLock: {
370 if (Name == "assert_exclusive_lock" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
371 return 0;
372 break;
373 }
374 case AT_AssertSharedLock: {
375 if (Name == "assert_shared_lock" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
376 return 0;
377 break;
378 }
379 case AT_AssumeAligned: {
380 if (Name == "assume_aligned" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
381 return 0;
382 if (Name == "assume_aligned" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
383 return 1;
384 if (Name == "assume_aligned" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
385 return 2;
386 break;
387 }
388 case AT_Availability: {
389 if (Name == "availability" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
390 return 0;
391 if (Name == "availability" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
392 return 1;
393 if (Name == "availability" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
394 return 2;
395 break;
396 }
397 case AT_AvailableOnlyInDefaultEvalMethod: {
398 if (Name == "available_only_in_default_eval_method" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
399 return 0;
400 if (Name == "available_only_in_default_eval_method" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
401 return 1;
402 if (Name == "available_only_in_default_eval_method" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
403 return 2;
404 break;
405 }
406 case AT_BPFPreserveAccessIndex: {
407 if (Name == "preserve_access_index" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
408 return 0;
409 if (Name == "preserve_access_index" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
410 return 1;
411 if (Name == "preserve_access_index" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
412 return 2;
413 break;
414 }
415 case AT_BPFPreserveStaticOffset: {
416 if (Name == "preserve_static_offset" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
417 return 0;
418 if (Name == "preserve_static_offset" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
419 return 1;
420 if (Name == "preserve_static_offset" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
421 return 2;
422 break;
423 }
424 case AT_BTFDeclTag: {
425 if (Name == "btf_decl_tag" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
426 return 0;
427 if (Name == "btf_decl_tag" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
428 return 1;
429 if (Name == "btf_decl_tag" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
430 return 2;
431 break;
432 }
433 case AT_BTFTypeTag: {
434 if (Name == "btf_type_tag" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
435 return 0;
436 if (Name == "btf_type_tag" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
437 return 1;
438 if (Name == "btf_type_tag" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
439 return 2;
440 break;
441 }
442 case AT_Blocking: {
443 if (Name == "blocking" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
444 return 0;
445 if (Name == "blocking" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
446 return 1;
447 if (Name == "blocking" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
448 return 2;
449 break;
450 }
451 case AT_Blocks: {
452 if (Name == "blocks" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
453 return 0;
454 if (Name == "blocks" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
455 return 1;
456 if (Name == "blocks" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
457 return 2;
458 break;
459 }
460 case AT_BuiltinAlias: {
461 if (Name == "builtin_alias" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
462 return 0;
463 if (Name == "builtin_alias" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
464 return 1;
465 if (Name == "clang_builtin_alias" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
466 return 2;
467 break;
468 }
469 case AT_CDecl: {
470 if (Name == "cdecl" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
471 return 0;
472 if (Name == "cdecl" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
473 return 1;
474 if (Name == "cdecl" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
475 return 2;
476 if (Name == "__cdecl" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
477 return 3;
478 if (Name == "_cdecl" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
479 return 4;
480 break;
481 }
482 case AT_CFAuditedTransfer: {
483 if (Name == "cf_audited_transfer" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
484 return 0;
485 if (Name == "cf_audited_transfer" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
486 return 1;
487 if (Name == "cf_audited_transfer" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
488 return 2;
489 break;
490 }
491 case AT_CFConsumed: {
492 if (Name == "cf_consumed" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
493 return 0;
494 if (Name == "cf_consumed" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
495 return 1;
496 if (Name == "cf_consumed" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
497 return 2;
498 break;
499 }
500 case AT_CFGuard: {
501 if (Name == "guard" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
502 return 0;
503 if (Name == "guard" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
504 return 1;
505 if (Name == "guard" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
506 return 2;
507 if (Name == "guard" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
508 return 3;
509 break;
510 }
511 case AT_CFICanonicalJumpTable: {
512 if (Name == "cfi_canonical_jump_table" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
513 return 0;
514 if (Name == "cfi_canonical_jump_table" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
515 return 1;
516 if (Name == "cfi_canonical_jump_table" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
517 return 2;
518 break;
519 }
520 case AT_CFReturnsNotRetained: {
521 if (Name == "cf_returns_not_retained" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
522 return 0;
523 if (Name == "cf_returns_not_retained" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
524 return 1;
525 if (Name == "cf_returns_not_retained" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
526 return 2;
527 break;
528 }
529 case AT_CFReturnsRetained: {
530 if (Name == "cf_returns_retained" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
531 return 0;
532 if (Name == "cf_returns_retained" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
533 return 1;
534 if (Name == "cf_returns_retained" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
535 return 2;
536 break;
537 }
538 case AT_CFUnknownTransfer: {
539 if (Name == "cf_unknown_transfer" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
540 return 0;
541 if (Name == "cf_unknown_transfer" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
542 return 1;
543 if (Name == "cf_unknown_transfer" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
544 return 2;
545 break;
546 }
547 case AT_CPUDispatch: {
548 if (Name == "cpu_dispatch" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
549 return 0;
550 if (Name == "cpu_dispatch" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
551 return 1;
552 if (Name == "cpu_dispatch" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
553 return 2;
554 if (Name == "cpu_dispatch" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
555 return 3;
556 break;
557 }
558 case AT_CPUSpecific: {
559 if (Name == "cpu_specific" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
560 return 0;
561 if (Name == "cpu_specific" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
562 return 1;
563 if (Name == "cpu_specific" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
564 return 2;
565 if (Name == "cpu_specific" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
566 return 3;
567 break;
568 }
569 case AT_CUDAConstant: {
570 if (Name == "constant" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
571 return 0;
572 if (Name == "__constant__" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
573 return 1;
574 break;
575 }
576 case AT_CUDADevice: {
577 if (Name == "device" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
578 return 0;
579 if (Name == "__device__" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
580 return 1;
581 break;
582 }
583 case AT_CUDADeviceBuiltinSurfaceType: {
584 if (Name == "device_builtin_surface_type" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
585 return 0;
586 if (Name == "__device_builtin_surface_type__" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
587 return 1;
588 break;
589 }
590 case AT_CUDADeviceBuiltinTextureType: {
591 if (Name == "device_builtin_texture_type" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
592 return 0;
593 if (Name == "__device_builtin_texture_type__" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
594 return 1;
595 break;
596 }
597 case AT_CUDAGlobal: {
598 if (Name == "global" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
599 return 0;
600 if (Name == "__global__" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
601 return 1;
602 break;
603 }
604 case AT_CUDAHost: {
605 if (Name == "host" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
606 return 0;
607 if (Name == "__host__" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
608 return 1;
609 break;
610 }
611 case AT_CUDAInvalidTarget: {
612 break;
613 }
614 case AT_CUDALaunchBounds: {
615 if (Name == "launch_bounds" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
616 return 0;
617 if (Name == "__launch_bounds__" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
618 return 1;
619 break;
620 }
621 case AT_CUDAShared: {
622 if (Name == "shared" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
623 return 0;
624 if (Name == "__shared__" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
625 return 1;
626 break;
627 }
628 case AT_CXX11NoReturn: {
629 if (Name == "noreturn" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "")
630 return 0;
631 if (Name == "noreturn" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "")
632 return 1;
633 if (Name == "_Noreturn" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "")
634 return 2;
635 break;
636 }
637 case AT_CXXAssume: {
638 if (Name == "assume" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "")
639 return 0;
640 if (Name == "assume" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
641 return 1;
642 if (Name == "assume" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
643 return 2;
644 if (Name == "assume" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
645 return 3;
646 break;
647 }
648 case AT_CallableWhen: {
649 if (Name == "callable_when" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
650 return 0;
651 if (Name == "callable_when" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
652 return 1;
653 break;
654 }
655 case AT_Callback: {
656 if (Name == "callback" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
657 return 0;
658 if (Name == "callback" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
659 return 1;
660 if (Name == "callback" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
661 return 2;
662 break;
663 }
664 case AT_CalledOnce: {
665 if (Name == "called_once" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
666 return 0;
667 if (Name == "called_once" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
668 return 1;
669 if (Name == "called_once" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
670 return 2;
671 break;
672 }
673 case AT_Capability: {
674 if (Name == "capability" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
675 return 0;
676 if (Name == "capability" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
677 return 1;
678 if (Name == "shared_capability" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
679 return 2;
680 if (Name == "shared_capability" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
681 return 3;
682 break;
683 }
684 case AT_CarriesDependency: {
685 if (Name == "carries_dependency" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
686 return 0;
687 if (Name == "carries_dependency" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "")
688 return 1;
689 break;
690 }
691 case AT_Cleanup: {
692 if (Name == "cleanup" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
693 return 0;
694 if (Name == "cleanup" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
695 return 1;
696 if (Name == "cleanup" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
697 return 2;
698 break;
699 }
700 case AT_ClspvLibclcBuiltin: {
701 if (Name == "clspv_libclc_builtin" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
702 return 0;
703 if (Name == "clspv_libclc_builtin" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
704 return 1;
705 if (Name == "clspv_libclc_builtin" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
706 return 2;
707 break;
708 }
709 case AT_CmseNSCall: {
710 if (Name == "cmse_nonsecure_call" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
711 return 0;
712 break;
713 }
714 case AT_CmseNSEntry: {
715 if (Name == "cmse_nonsecure_entry" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
716 return 0;
717 break;
718 }
719 case AT_CodeAlign: {
720 if (Name == "code_align" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
721 return 0;
722 if (Name == "code_align" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
723 return 1;
724 if (Name == "code_align" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
725 return 2;
726 break;
727 }
728 case AT_CodeModel: {
729 if (Name == "model" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
730 return 0;
731 if (Name == "model" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
732 return 1;
733 if (Name == "model" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
734 return 2;
735 break;
736 }
737 case AT_CodeSeg: {
738 if (Name == "code_seg" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
739 return 0;
740 break;
741 }
742 case AT_Cold: {
743 if (Name == "cold" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
744 return 0;
745 if (Name == "cold" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
746 return 1;
747 if (Name == "cold" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
748 return 2;
749 break;
750 }
751 case AT_Common: {
752 if (Name == "common" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
753 return 0;
754 if (Name == "common" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
755 return 1;
756 if (Name == "common" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
757 return 2;
758 break;
759 }
760 case AT_Const: {
761 if (Name == "const" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
762 return 0;
763 if (Name == "const" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
764 return 1;
765 if (Name == "const" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
766 return 2;
767 if (Name == "__const" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
768 return 3;
769 if (Name == "__const" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
770 return 4;
771 if (Name == "__const" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
772 return 5;
773 break;
774 }
775 case AT_ConstInit: {
776 if (Name == "constinit" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
777 return 0;
778 if (Name == "require_constant_initialization" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
779 return 1;
780 if (Name == "require_constant_initialization" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
781 return 2;
782 break;
783 }
784 case AT_Constructor: {
785 if (Name == "constructor" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
786 return 0;
787 if (Name == "constructor" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
788 return 1;
789 if (Name == "constructor" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
790 return 2;
791 break;
792 }
793 case AT_Consumable: {
794 if (Name == "consumable" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
795 return 0;
796 if (Name == "consumable" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
797 return 1;
798 break;
799 }
800 case AT_ConsumableAutoCast: {
801 if (Name == "consumable_auto_cast_state" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
802 return 0;
803 if (Name == "consumable_auto_cast_state" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
804 return 1;
805 break;
806 }
807 case AT_ConsumableSetOnRead: {
808 if (Name == "consumable_set_state_on_read" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
809 return 0;
810 if (Name == "consumable_set_state_on_read" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
811 return 1;
812 break;
813 }
814 case AT_Convergent: {
815 if (Name == "convergent" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
816 return 0;
817 if (Name == "convergent" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
818 return 1;
819 if (Name == "convergent" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
820 return 2;
821 break;
822 }
823 case AT_CoroDisableLifetimeBound: {
824 if (Name == "coro_disable_lifetimebound" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
825 return 0;
826 if (Name == "coro_disable_lifetimebound" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
827 return 1;
828 if (Name == "coro_disable_lifetimebound" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
829 return 2;
830 break;
831 }
832 case AT_CoroLifetimeBound: {
833 if (Name == "coro_lifetimebound" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
834 return 0;
835 if (Name == "coro_lifetimebound" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
836 return 1;
837 if (Name == "coro_lifetimebound" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
838 return 2;
839 break;
840 }
841 case AT_CoroOnlyDestroyWhenComplete: {
842 if (Name == "coro_only_destroy_when_complete" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
843 return 0;
844 if (Name == "coro_only_destroy_when_complete" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
845 return 1;
846 if (Name == "coro_only_destroy_when_complete" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
847 return 2;
848 break;
849 }
850 case AT_CoroReturnType: {
851 if (Name == "coro_return_type" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
852 return 0;
853 if (Name == "coro_return_type" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
854 return 1;
855 if (Name == "coro_return_type" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
856 return 2;
857 break;
858 }
859 case AT_CoroWrapper: {
860 if (Name == "coro_wrapper" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
861 return 0;
862 if (Name == "coro_wrapper" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
863 return 1;
864 if (Name == "coro_wrapper" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
865 return 2;
866 break;
867 }
868 case AT_CountedBy: {
869 if (Name == "counted_by" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
870 return 0;
871 if (Name == "counted_by" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
872 return 1;
873 if (Name == "counted_by" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
874 return 2;
875 break;
876 }
877 case AT_CountedByOrNull: {
878 if (Name == "counted_by_or_null" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
879 return 0;
880 if (Name == "counted_by_or_null" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
881 return 1;
882 if (Name == "counted_by_or_null" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
883 return 2;
884 break;
885 }
886 case AT_DLLExport: {
887 if (Name == "dllexport" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
888 return 0;
889 if (Name == "dllexport" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
890 return 1;
891 if (Name == "dllexport" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
892 return 2;
893 if (Name == "dllexport" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
894 return 3;
895 break;
896 }
897 case AT_DLLExportStaticLocal: {
898 break;
899 }
900 case AT_DLLImport: {
901 if (Name == "dllimport" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
902 return 0;
903 if (Name == "dllimport" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
904 return 1;
905 if (Name == "dllimport" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
906 return 2;
907 if (Name == "dllimport" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
908 return 3;
909 break;
910 }
911 case AT_DLLImportStaticLocal: {
912 break;
913 }
914 case AT_Deprecated: {
915 if (Name == "deprecated" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
916 return 0;
917 if (Name == "deprecated" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
918 return 1;
919 if (Name == "deprecated" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
920 return 2;
921 if (Name == "deprecated" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
922 return 3;
923 if (Name == "deprecated" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "")
924 return 4;
925 if (Name == "deprecated" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "")
926 return 5;
927 break;
928 }
929 case AT_Destructor: {
930 if (Name == "destructor" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
931 return 0;
932 if (Name == "destructor" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
933 return 1;
934 if (Name == "destructor" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
935 return 2;
936 break;
937 }
938 case AT_DiagnoseAsBuiltin: {
939 if (Name == "diagnose_as_builtin" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
940 return 0;
941 if (Name == "diagnose_as_builtin" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
942 return 1;
943 if (Name == "diagnose_as_builtin" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
944 return 2;
945 break;
946 }
947 case AT_DiagnoseIf: {
948 if (Name == "diagnose_if" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
949 return 0;
950 break;
951 }
952 case AT_DisableSanitizerInstrumentation: {
953 if (Name == "disable_sanitizer_instrumentation" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
954 return 0;
955 if (Name == "disable_sanitizer_instrumentation" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
956 return 1;
957 if (Name == "disable_sanitizer_instrumentation" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
958 return 2;
959 break;
960 }
961 case AT_DisableTailCalls: {
962 if (Name == "disable_tail_calls" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
963 return 0;
964 if (Name == "disable_tail_calls" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
965 return 1;
966 if (Name == "disable_tail_calls" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
967 return 2;
968 break;
969 }
970 case AT_EmptyBases: {
971 if (Name == "empty_bases" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
972 return 0;
973 break;
974 }
975 case AT_EnableIf: {
976 if (Name == "enable_if" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
977 return 0;
978 break;
979 }
980 case AT_EnforceTCB: {
981 if (Name == "enforce_tcb" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
982 return 0;
983 if (Name == "enforce_tcb" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
984 return 1;
985 if (Name == "enforce_tcb" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
986 return 2;
987 break;
988 }
989 case AT_EnforceTCBLeaf: {
990 if (Name == "enforce_tcb_leaf" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
991 return 0;
992 if (Name == "enforce_tcb_leaf" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
993 return 1;
994 if (Name == "enforce_tcb_leaf" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
995 return 2;
996 break;
997 }
998 case AT_EnumExtensibility: {
999 if (Name == "enum_extensibility" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1000 return 0;
1001 if (Name == "enum_extensibility" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1002 return 1;
1003 if (Name == "enum_extensibility" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1004 return 2;
1005 break;
1006 }
1007 case AT_Error: {
1008 if (Name == "error" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1009 return 0;
1010 if (Name == "error" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1011 return 1;
1012 if (Name == "error" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1013 return 2;
1014 if (Name == "warning" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1015 return 3;
1016 if (Name == "warning" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1017 return 4;
1018 if (Name == "warning" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1019 return 5;
1020 break;
1021 }
1022 case AT_ExcludeFromExplicitInstantiation: {
1023 if (Name == "exclude_from_explicit_instantiation" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1024 return 0;
1025 if (Name == "exclude_from_explicit_instantiation" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1026 return 1;
1027 if (Name == "exclude_from_explicit_instantiation" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1028 return 2;
1029 break;
1030 }
1031 case AT_ExclusiveTrylockFunction: {
1032 if (Name == "exclusive_trylock_function" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1033 return 0;
1034 break;
1035 }
1036 case AT_ExtVectorType: {
1037 if (Name == "ext_vector_type" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1038 return 0;
1039 break;
1040 }
1041 case AT_ExternalSourceSymbol: {
1042 if (Name == "external_source_symbol" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1043 return 0;
1044 if (Name == "external_source_symbol" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1045 return 1;
1046 if (Name == "external_source_symbol" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1047 return 2;
1048 break;
1049 }
1050 case AT_FallThrough: {
1051 if (Name == "fallthrough" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "")
1052 return 0;
1053 if (Name == "fallthrough" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "")
1054 return 1;
1055 if (Name == "fallthrough" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1056 return 2;
1057 if (Name == "fallthrough" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1058 return 3;
1059 if (Name == "fallthrough" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1060 return 4;
1061 if (Name == "fallthrough" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1062 return 5;
1063 break;
1064 }
1065 case AT_FastCall: {
1066 if (Name == "fastcall" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1067 return 0;
1068 if (Name == "fastcall" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1069 return 1;
1070 if (Name == "fastcall" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1071 return 2;
1072 if (Name == "__fastcall" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
1073 return 3;
1074 if (Name == "_fastcall" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
1075 return 4;
1076 break;
1077 }
1078 case AT_FlagEnum: {
1079 if (Name == "flag_enum" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1080 return 0;
1081 if (Name == "flag_enum" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1082 return 1;
1083 if (Name == "flag_enum" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1084 return 2;
1085 break;
1086 }
1087 case AT_Flatten: {
1088 if (Name == "flatten" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1089 return 0;
1090 if (Name == "flatten" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1091 return 1;
1092 if (Name == "flatten" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1093 return 2;
1094 break;
1095 }
1096 case AT_Format: {
1097 if (Name == "format" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1098 return 0;
1099 if (Name == "format" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1100 return 1;
1101 if (Name == "format" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1102 return 2;
1103 break;
1104 }
1105 case AT_FormatArg: {
1106 if (Name == "format_arg" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1107 return 0;
1108 if (Name == "format_arg" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1109 return 1;
1110 if (Name == "format_arg" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1111 return 2;
1112 break;
1113 }
1114 case AT_FunctionReturnThunks: {
1115 if (Name == "function_return" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1116 return 0;
1117 if (Name == "function_return" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1118 return 1;
1119 if (Name == "function_return" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1120 return 2;
1121 break;
1122 }
1123 case AT_GNUInline: {
1124 if (Name == "gnu_inline" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1125 return 0;
1126 if (Name == "gnu_inline" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1127 return 1;
1128 if (Name == "gnu_inline" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1129 return 2;
1130 break;
1131 }
1132 case AT_GuardedBy: {
1133 if (Name == "guarded_by" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1134 return 0;
1135 break;
1136 }
1137 case AT_GuardedVar: {
1138 if (Name == "guarded_var" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1139 return 0;
1140 if (Name == "guarded_var" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1141 return 1;
1142 break;
1143 }
1144 case AT_HIPManaged: {
1145 if (Name == "managed" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1146 return 0;
1147 if (Name == "__managed__" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
1148 return 1;
1149 break;
1150 }
1151 case AT_HLSLGroupSharedAddressSpace: {
1152 if (Name == "groupshared" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
1153 return 0;
1154 break;
1155 }
1156 case AT_HLSLLoopHint: {
1157 if (Name == "unroll" && getSyntax() == AttributeCommonInfo::AS_Microsoft && Scope == "")
1158 return 0;
1159 if (Name == "loop" && getSyntax() == AttributeCommonInfo::AS_Microsoft && Scope == "")
1160 return 1;
1161 break;
1162 }
1163 case AT_HLSLNumThreads: {
1164 if (Name == "numthreads" && getSyntax() == AttributeCommonInfo::AS_Microsoft && Scope == "")
1165 return 0;
1166 break;
1167 }
1168 case AT_HLSLPackOffset: {
1169 if (Name == "packoffset" && getSyntax() == AttributeCommonInfo::AS_HLSLAnnotation && Scope == "")
1170 return 0;
1171 break;
1172 }
1173 case AT_HLSLParamModifier: {
1174 if (Name == "in" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
1175 return 0;
1176 if (Name == "inout" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
1177 return 1;
1178 if (Name == "out" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
1179 return 2;
1180 break;
1181 }
1182 case AT_HLSLResource: {
1183 break;
1184 }
1185 case AT_HLSLResourceBinding: {
1186 if (Name == "register" && getSyntax() == AttributeCommonInfo::AS_HLSLAnnotation && Scope == "")
1187 return 0;
1188 break;
1189 }
1190 case AT_HLSLResourceClass: {
1191 if (Name == "resource_class" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "hlsl")
1192 return 0;
1193 break;
1194 }
1195 case AT_HLSLSV_DispatchThreadID: {
1196 if (Name == "SV_DispatchThreadID" && getSyntax() == AttributeCommonInfo::AS_HLSLAnnotation && Scope == "")
1197 return 0;
1198 break;
1199 }
1200 case AT_HLSLSV_GroupIndex: {
1201 if (Name == "SV_GroupIndex" && getSyntax() == AttributeCommonInfo::AS_HLSLAnnotation && Scope == "")
1202 return 0;
1203 break;
1204 }
1205 case AT_HLSLShader: {
1206 if (Name == "shader" && getSyntax() == AttributeCommonInfo::AS_Microsoft && Scope == "")
1207 return 0;
1208 break;
1209 }
1210 case AT_Hot: {
1211 if (Name == "hot" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1212 return 0;
1213 if (Name == "hot" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1214 return 1;
1215 if (Name == "hot" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1216 return 2;
1217 break;
1218 }
1219 case AT_HybridPatchable: {
1220 if (Name == "hybrid_patchable" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
1221 return 0;
1222 if (Name == "hybrid_patchable" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1223 return 1;
1224 if (Name == "hybrid_patchable" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1225 return 2;
1226 if (Name == "hybrid_patchable" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1227 return 3;
1228 break;
1229 }
1230 case AT_IBAction: {
1231 if (Name == "ibaction" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1232 return 0;
1233 if (Name == "ibaction" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1234 return 1;
1235 if (Name == "ibaction" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1236 return 2;
1237 break;
1238 }
1239 case AT_IBOutlet: {
1240 if (Name == "iboutlet" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1241 return 0;
1242 if (Name == "iboutlet" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1243 return 1;
1244 if (Name == "iboutlet" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1245 return 2;
1246 break;
1247 }
1248 case AT_IBOutletCollection: {
1249 if (Name == "iboutletcollection" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1250 return 0;
1251 if (Name == "iboutletcollection" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1252 return 1;
1253 if (Name == "iboutletcollection" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1254 return 2;
1255 break;
1256 }
1257 case AT_IFunc: {
1258 if (Name == "ifunc" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1259 return 0;
1260 if (Name == "ifunc" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1261 return 1;
1262 if (Name == "ifunc" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1263 return 2;
1264 break;
1265 }
1266 case AT_InitPriority: {
1267 if (Name == "init_priority" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1268 return 0;
1269 if (Name == "init_priority" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1270 return 1;
1271 break;
1272 }
1273 case AT_IntelOclBicc: {
1274 if (Name == "intel_ocl_bicc" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1275 return 0;
1276 if (Name == "intel_ocl_bicc" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1277 return 1;
1278 break;
1279 }
1280 case AT_InternalLinkage: {
1281 if (Name == "internal_linkage" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1282 return 0;
1283 if (Name == "internal_linkage" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1284 return 1;
1285 if (Name == "internal_linkage" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1286 return 2;
1287 break;
1288 }
1289 case AT_LTOVisibilityPublic: {
1290 if (Name == "lto_visibility_public" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1291 return 0;
1292 if (Name == "lto_visibility_public" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1293 return 1;
1294 if (Name == "lto_visibility_public" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1295 return 2;
1296 break;
1297 }
1298 case AT_LayoutVersion: {
1299 if (Name == "layout_version" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
1300 return 0;
1301 break;
1302 }
1303 case AT_Leaf: {
1304 if (Name == "leaf" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1305 return 0;
1306 if (Name == "leaf" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1307 return 1;
1308 if (Name == "leaf" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1309 return 2;
1310 break;
1311 }
1312 case AT_LifetimeBound: {
1313 if (Name == "lifetimebound" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1314 return 0;
1315 if (Name == "lifetimebound" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1316 return 1;
1317 break;
1318 }
1319 case AT_Likely: {
1320 if (Name == "likely" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "")
1321 return 0;
1322 if (Name == "likely" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1323 return 1;
1324 break;
1325 }
1326 case AT_LoaderUninitialized: {
1327 if (Name == "loader_uninitialized" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1328 return 0;
1329 if (Name == "loader_uninitialized" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1330 return 1;
1331 if (Name == "loader_uninitialized" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1332 return 2;
1333 break;
1334 }
1335 case AT_LockReturned: {
1336 if (Name == "lock_returned" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1337 return 0;
1338 break;
1339 }
1340 case AT_Lockable: {
1341 if (Name == "lockable" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1342 return 0;
1343 break;
1344 }
1345 case AT_LocksExcluded: {
1346 if (Name == "locks_excluded" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1347 return 0;
1348 break;
1349 }
1350 case AT_LoopHint: {
1351 if (Name == "loop" && getSyntax() == AttributeCommonInfo::AS_Pragma && Scope == "clang")
1352 return 0;
1353 if (Name == "unroll" && getSyntax() == AttributeCommonInfo::AS_Pragma && Scope == "")
1354 return 1;
1355 if (Name == "nounroll" && getSyntax() == AttributeCommonInfo::AS_Pragma && Scope == "")
1356 return 2;
1357 if (Name == "unroll_and_jam" && getSyntax() == AttributeCommonInfo::AS_Pragma && Scope == "")
1358 return 3;
1359 if (Name == "nounroll_and_jam" && getSyntax() == AttributeCommonInfo::AS_Pragma && Scope == "")
1360 return 4;
1361 break;
1362 }
1363 case AT_M68kRTD: {
1364 if (Name == "m68k_rtd" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1365 return 0;
1366 if (Name == "m68k_rtd" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1367 return 1;
1368 if (Name == "m68k_rtd" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1369 return 2;
1370 break;
1371 }
1372 case AT_MIGServerRoutine: {
1373 if (Name == "mig_server_routine" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1374 return 0;
1375 if (Name == "mig_server_routine" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1376 return 1;
1377 if (Name == "mig_server_routine" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1378 return 2;
1379 break;
1380 }
1381 case AT_MSABI: {
1382 if (Name == "ms_abi" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1383 return 0;
1384 if (Name == "ms_abi" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1385 return 1;
1386 if (Name == "ms_abi" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1387 return 2;
1388 break;
1389 }
1390 case AT_MSAllocator: {
1391 if (Name == "allocator" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
1392 return 0;
1393 break;
1394 }
1395 case AT_MSConstexpr: {
1396 if (Name == "constexpr" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "msvc")
1397 return 0;
1398 break;
1399 }
1400 case AT_MSInheritance: {
1401 if (Name == "__single_inheritance" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
1402 return 0;
1403 if (Name == "__multiple_inheritance" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
1404 return 1;
1405 if (Name == "__virtual_inheritance" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
1406 return 2;
1407 if (Name == "__unspecified_inheritance" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
1408 return 3;
1409 break;
1410 }
1411 case AT_MSNoVTable: {
1412 if (Name == "novtable" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
1413 return 0;
1414 break;
1415 }
1416 case AT_MSStruct: {
1417 if (Name == "ms_struct" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1418 return 0;
1419 if (Name == "ms_struct" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1420 return 1;
1421 if (Name == "ms_struct" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1422 return 2;
1423 break;
1424 }
1425 case AT_MatrixType: {
1426 if (Name == "matrix_type" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1427 return 0;
1428 if (Name == "matrix_type" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1429 return 1;
1430 if (Name == "matrix_type" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1431 return 2;
1432 break;
1433 }
1434 case AT_MayAlias: {
1435 if (Name == "may_alias" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1436 return 0;
1437 if (Name == "may_alias" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1438 return 1;
1439 if (Name == "may_alias" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1440 return 2;
1441 break;
1442 }
1443 case AT_MaybeUndef: {
1444 if (Name == "maybe_undef" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1445 return 0;
1446 if (Name == "maybe_undef" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1447 return 1;
1448 if (Name == "maybe_undef" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1449 return 2;
1450 break;
1451 }
1452 case AT_MicroMips: {
1453 if (Name == "micromips" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1454 return 0;
1455 if (Name == "micromips" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1456 return 1;
1457 if (Name == "micromips" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1458 return 2;
1459 break;
1460 }
1461 case AT_MinSize: {
1462 if (Name == "minsize" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1463 return 0;
1464 if (Name == "minsize" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1465 return 1;
1466 if (Name == "minsize" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1467 return 2;
1468 break;
1469 }
1470 case AT_MinVectorWidth: {
1471 if (Name == "min_vector_width" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1472 return 0;
1473 if (Name == "min_vector_width" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1474 return 1;
1475 if (Name == "min_vector_width" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1476 return 2;
1477 break;
1478 }
1479 case AT_Mips16: {
1480 if (Name == "mips16" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1481 return 0;
1482 if (Name == "mips16" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1483 return 1;
1484 if (Name == "mips16" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1485 return 2;
1486 break;
1487 }
1488 case AT_MipsLongCall: {
1489 if (Name == "long_call" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1490 return 0;
1491 if (Name == "long_call" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1492 return 1;
1493 if (Name == "long_call" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1494 return 2;
1495 if (Name == "far" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1496 return 3;
1497 if (Name == "far" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1498 return 4;
1499 if (Name == "far" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1500 return 5;
1501 break;
1502 }
1503 case AT_MipsShortCall: {
1504 if (Name == "short_call" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1505 return 0;
1506 if (Name == "short_call" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1507 return 1;
1508 if (Name == "short_call" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1509 return 2;
1510 if (Name == "near" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1511 return 3;
1512 if (Name == "near" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1513 return 4;
1514 if (Name == "near" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1515 return 5;
1516 break;
1517 }
1518 case AT_Mode: {
1519 if (Name == "mode" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1520 return 0;
1521 if (Name == "mode" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1522 return 1;
1523 if (Name == "mode" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1524 return 2;
1525 break;
1526 }
1527 case AT_MustTail: {
1528 if (Name == "musttail" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1529 return 0;
1530 if (Name == "musttail" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1531 return 1;
1532 if (Name == "musttail" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1533 return 2;
1534 break;
1535 }
1536 case AT_NSConsumed: {
1537 if (Name == "ns_consumed" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1538 return 0;
1539 if (Name == "ns_consumed" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1540 return 1;
1541 if (Name == "ns_consumed" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1542 return 2;
1543 break;
1544 }
1545 case AT_NSConsumesSelf: {
1546 if (Name == "ns_consumes_self" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1547 return 0;
1548 if (Name == "ns_consumes_self" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1549 return 1;
1550 if (Name == "ns_consumes_self" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1551 return 2;
1552 break;
1553 }
1554 case AT_NSErrorDomain: {
1555 if (Name == "ns_error_domain" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1556 return 0;
1557 break;
1558 }
1559 case AT_NSReturnsAutoreleased: {
1560 if (Name == "ns_returns_autoreleased" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1561 return 0;
1562 if (Name == "ns_returns_autoreleased" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1563 return 1;
1564 if (Name == "ns_returns_autoreleased" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1565 return 2;
1566 break;
1567 }
1568 case AT_NSReturnsNotRetained: {
1569 if (Name == "ns_returns_not_retained" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1570 return 0;
1571 if (Name == "ns_returns_not_retained" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1572 return 1;
1573 if (Name == "ns_returns_not_retained" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1574 return 2;
1575 break;
1576 }
1577 case AT_NSReturnsRetained: {
1578 if (Name == "ns_returns_retained" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1579 return 0;
1580 if (Name == "ns_returns_retained" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1581 return 1;
1582 if (Name == "ns_returns_retained" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1583 return 2;
1584 break;
1585 }
1586 case AT_NVPTXKernel: {
1587 if (Name == "nvptx_kernel" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1588 return 0;
1589 if (Name == "nvptx_kernel" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1590 return 1;
1591 if (Name == "nvptx_kernel" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1592 return 2;
1593 break;
1594 }
1595 case AT_Naked: {
1596 if (Name == "naked" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1597 return 0;
1598 if (Name == "naked" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1599 return 1;
1600 if (Name == "naked" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1601 return 2;
1602 if (Name == "naked" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
1603 return 3;
1604 break;
1605 }
1606 case AT_NeonPolyVectorType: {
1607 if (Name == "neon_polyvector_type" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1608 return 0;
1609 if (Name == "neon_polyvector_type" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1610 return 1;
1611 if (Name == "neon_polyvector_type" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1612 return 2;
1613 break;
1614 }
1615 case AT_NeonVectorType: {
1616 if (Name == "neon_vector_type" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1617 return 0;
1618 if (Name == "neon_vector_type" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1619 return 1;
1620 if (Name == "neon_vector_type" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1621 return 2;
1622 break;
1623 }
1624 case AT_NoAlias: {
1625 if (Name == "noalias" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
1626 return 0;
1627 break;
1628 }
1629 case AT_NoBuiltin: {
1630 if (Name == "no_builtin" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1631 return 0;
1632 if (Name == "no_builtin" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1633 return 1;
1634 if (Name == "no_builtin" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1635 return 2;
1636 break;
1637 }
1638 case AT_NoCommon: {
1639 if (Name == "nocommon" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1640 return 0;
1641 if (Name == "nocommon" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1642 return 1;
1643 if (Name == "nocommon" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1644 return 2;
1645 break;
1646 }
1647 case AT_NoDebug: {
1648 if (Name == "nodebug" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1649 return 0;
1650 if (Name == "nodebug" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1651 return 1;
1652 if (Name == "nodebug" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1653 return 2;
1654 break;
1655 }
1656 case AT_NoDeref: {
1657 if (Name == "noderef" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1658 return 0;
1659 if (Name == "noderef" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1660 return 1;
1661 if (Name == "noderef" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1662 return 2;
1663 break;
1664 }
1665 case AT_NoDestroy: {
1666 if (Name == "no_destroy" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1667 return 0;
1668 if (Name == "no_destroy" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1669 return 1;
1670 break;
1671 }
1672 case AT_NoDuplicate: {
1673 if (Name == "noduplicate" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1674 return 0;
1675 if (Name == "noduplicate" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1676 return 1;
1677 if (Name == "noduplicate" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1678 return 2;
1679 break;
1680 }
1681 case AT_NoEscape: {
1682 if (Name == "noescape" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1683 return 0;
1684 if (Name == "noescape" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1685 return 1;
1686 if (Name == "noescape" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1687 return 2;
1688 break;
1689 }
1690 case AT_NoInline: {
1691 if (Name == "__noinline__" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
1692 return 0;
1693 if (Name == "noinline" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1694 return 1;
1695 if (Name == "noinline" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1696 return 2;
1697 if (Name == "noinline" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1698 return 3;
1699 if (Name == "noinline" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1700 return 4;
1701 if (Name == "noinline" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1702 return 5;
1703 if (Name == "noinline" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "msvc")
1704 return 6;
1705 if (Name == "noinline" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "msvc")
1706 return 7;
1707 if (Name == "noinline" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
1708 return 8;
1709 break;
1710 }
1711 case AT_NoInstrumentFunction: {
1712 if (Name == "no_instrument_function" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1713 return 0;
1714 if (Name == "no_instrument_function" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1715 return 1;
1716 if (Name == "no_instrument_function" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1717 return 2;
1718 break;
1719 }
1720 case AT_NoMerge: {
1721 if (Name == "nomerge" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1722 return 0;
1723 if (Name == "nomerge" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1724 return 1;
1725 if (Name == "nomerge" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1726 return 2;
1727 break;
1728 }
1729 case AT_NoMicroMips: {
1730 if (Name == "nomicromips" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1731 return 0;
1732 if (Name == "nomicromips" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1733 return 1;
1734 if (Name == "nomicromips" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1735 return 2;
1736 break;
1737 }
1738 case AT_NoMips16: {
1739 if (Name == "nomips16" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1740 return 0;
1741 if (Name == "nomips16" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1742 return 1;
1743 if (Name == "nomips16" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1744 return 2;
1745 break;
1746 }
1747 case AT_NoProfileFunction: {
1748 if (Name == "no_profile_instrument_function" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1749 return 0;
1750 if (Name == "no_profile_instrument_function" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1751 return 1;
1752 if (Name == "no_profile_instrument_function" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1753 return 2;
1754 break;
1755 }
1756 case AT_NoRandomizeLayout: {
1757 if (Name == "no_randomize_layout" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1758 return 0;
1759 if (Name == "no_randomize_layout" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1760 return 1;
1761 if (Name == "no_randomize_layout" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1762 return 2;
1763 break;
1764 }
1765 case AT_NoReturn: {
1766 if (Name == "noreturn" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1767 return 0;
1768 if (Name == "noreturn" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1769 return 1;
1770 if (Name == "noreturn" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1771 return 2;
1772 if (Name == "noreturn" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
1773 return 3;
1774 break;
1775 }
1776 case AT_NoSanitize: {
1777 if (Name == "no_sanitize" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1778 return 0;
1779 if (Name == "no_sanitize" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1780 return 1;
1781 if (Name == "no_sanitize" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1782 return 2;
1783 break;
1784 }
1785 case AT_NoSanitizeSpecific: {
1786 if (Name == "no_address_safety_analysis" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1787 return 0;
1788 if (Name == "no_address_safety_analysis" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1789 return 1;
1790 if (Name == "no_address_safety_analysis" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1791 return 2;
1792 if (Name == "no_sanitize_address" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1793 return 3;
1794 if (Name == "no_sanitize_address" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1795 return 4;
1796 if (Name == "no_sanitize_address" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1797 return 5;
1798 if (Name == "no_sanitize_thread" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1799 return 6;
1800 if (Name == "no_sanitize_thread" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1801 return 7;
1802 if (Name == "no_sanitize_thread" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1803 return 8;
1804 if (Name == "no_sanitize_memory" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1805 return 9;
1806 if (Name == "no_sanitize_memory" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1807 return 10;
1808 if (Name == "no_sanitize_memory" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1809 return 11;
1810 break;
1811 }
1812 case AT_NoSpeculativeLoadHardening: {
1813 if (Name == "no_speculative_load_hardening" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1814 return 0;
1815 if (Name == "no_speculative_load_hardening" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1816 return 1;
1817 if (Name == "no_speculative_load_hardening" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1818 return 2;
1819 break;
1820 }
1821 case AT_NoSplitStack: {
1822 if (Name == "no_split_stack" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1823 return 0;
1824 if (Name == "no_split_stack" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1825 return 1;
1826 if (Name == "no_split_stack" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1827 return 2;
1828 break;
1829 }
1830 case AT_NoStackProtector: {
1831 if (Name == "no_stack_protector" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1832 return 0;
1833 if (Name == "no_stack_protector" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1834 return 1;
1835 if (Name == "no_stack_protector" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1836 return 2;
1837 if (Name == "no_stack_protector" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1838 return 3;
1839 if (Name == "no_stack_protector" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1840 return 4;
1841 if (Name == "safebuffers" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
1842 return 5;
1843 break;
1844 }
1845 case AT_NoThreadSafetyAnalysis: {
1846 if (Name == "no_thread_safety_analysis" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1847 return 0;
1848 if (Name == "no_thread_safety_analysis" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1849 return 1;
1850 if (Name == "no_thread_safety_analysis" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1851 return 2;
1852 break;
1853 }
1854 case AT_NoThrow: {
1855 if (Name == "nothrow" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1856 return 0;
1857 if (Name == "nothrow" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1858 return 1;
1859 if (Name == "nothrow" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1860 return 2;
1861 if (Name == "nothrow" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
1862 return 3;
1863 break;
1864 }
1865 case AT_NoUniqueAddress: {
1866 if (Name == "no_unique_address" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "")
1867 return 0;
1868 if (Name == "no_unique_address" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "msvc")
1869 return 1;
1870 break;
1871 }
1872 case AT_NoUwtable: {
1873 if (Name == "nouwtable" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1874 return 0;
1875 if (Name == "nouwtable" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1876 return 1;
1877 if (Name == "nouwtable" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1878 return 2;
1879 break;
1880 }
1881 case AT_NonAllocating: {
1882 if (Name == "nonallocating" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1883 return 0;
1884 if (Name == "nonallocating" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1885 return 1;
1886 if (Name == "nonallocating" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1887 return 2;
1888 break;
1889 }
1890 case AT_NonBlocking: {
1891 if (Name == "nonblocking" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1892 return 0;
1893 if (Name == "nonblocking" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1894 return 1;
1895 if (Name == "nonblocking" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1896 return 2;
1897 break;
1898 }
1899 case AT_NonNull: {
1900 if (Name == "nonnull" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1901 return 0;
1902 if (Name == "nonnull" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
1903 return 1;
1904 if (Name == "nonnull" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
1905 return 2;
1906 break;
1907 }
1908 case AT_NotTailCalled: {
1909 if (Name == "not_tail_called" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1910 return 0;
1911 if (Name == "not_tail_called" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1912 return 1;
1913 if (Name == "not_tail_called" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1914 return 2;
1915 break;
1916 }
1917 case AT_OMPAssume: {
1918 if (Name == "assume" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "omp")
1919 return 0;
1920 break;
1921 }
1922 case AT_OSConsumed: {
1923 if (Name == "os_consumed" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1924 return 0;
1925 if (Name == "os_consumed" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1926 return 1;
1927 if (Name == "os_consumed" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1928 return 2;
1929 break;
1930 }
1931 case AT_OSConsumesThis: {
1932 if (Name == "os_consumes_this" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1933 return 0;
1934 if (Name == "os_consumes_this" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1935 return 1;
1936 if (Name == "os_consumes_this" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1937 return 2;
1938 break;
1939 }
1940 case AT_OSReturnsNotRetained: {
1941 if (Name == "os_returns_not_retained" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1942 return 0;
1943 if (Name == "os_returns_not_retained" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1944 return 1;
1945 if (Name == "os_returns_not_retained" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1946 return 2;
1947 break;
1948 }
1949 case AT_OSReturnsRetained: {
1950 if (Name == "os_returns_retained" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1951 return 0;
1952 if (Name == "os_returns_retained" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1953 return 1;
1954 if (Name == "os_returns_retained" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1955 return 2;
1956 break;
1957 }
1958 case AT_OSReturnsRetainedOnNonZero: {
1959 if (Name == "os_returns_retained_on_non_zero" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1960 return 0;
1961 if (Name == "os_returns_retained_on_non_zero" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1962 return 1;
1963 if (Name == "os_returns_retained_on_non_zero" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1964 return 2;
1965 break;
1966 }
1967 case AT_OSReturnsRetainedOnZero: {
1968 if (Name == "os_returns_retained_on_zero" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1969 return 0;
1970 if (Name == "os_returns_retained_on_zero" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1971 return 1;
1972 if (Name == "os_returns_retained_on_zero" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1973 return 2;
1974 break;
1975 }
1976 case AT_ObjCBoxable: {
1977 if (Name == "objc_boxable" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1978 return 0;
1979 if (Name == "objc_boxable" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1980 return 1;
1981 if (Name == "objc_boxable" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1982 return 2;
1983 break;
1984 }
1985 case AT_ObjCBridge: {
1986 if (Name == "objc_bridge" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1987 return 0;
1988 if (Name == "objc_bridge" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1989 return 1;
1990 if (Name == "objc_bridge" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
1991 return 2;
1992 break;
1993 }
1994 case AT_ObjCBridgeMutable: {
1995 if (Name == "objc_bridge_mutable" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
1996 return 0;
1997 if (Name == "objc_bridge_mutable" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
1998 return 1;
1999 if (Name == "objc_bridge_mutable" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2000 return 2;
2001 break;
2002 }
2003 case AT_ObjCBridgeRelated: {
2004 if (Name == "objc_bridge_related" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2005 return 0;
2006 if (Name == "objc_bridge_related" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2007 return 1;
2008 if (Name == "objc_bridge_related" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2009 return 2;
2010 break;
2011 }
2012 case AT_ObjCClassStub: {
2013 if (Name == "objc_class_stub" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2014 return 0;
2015 if (Name == "objc_class_stub" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2016 return 1;
2017 if (Name == "objc_class_stub" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2018 return 2;
2019 break;
2020 }
2021 case AT_ObjCDesignatedInitializer: {
2022 if (Name == "objc_designated_initializer" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2023 return 0;
2024 if (Name == "objc_designated_initializer" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2025 return 1;
2026 if (Name == "objc_designated_initializer" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2027 return 2;
2028 break;
2029 }
2030 case AT_ObjCDirect: {
2031 if (Name == "objc_direct" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2032 return 0;
2033 if (Name == "objc_direct" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2034 return 1;
2035 if (Name == "objc_direct" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2036 return 2;
2037 break;
2038 }
2039 case AT_ObjCDirectMembers: {
2040 if (Name == "objc_direct_members" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2041 return 0;
2042 if (Name == "objc_direct_members" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2043 return 1;
2044 if (Name == "objc_direct_members" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2045 return 2;
2046 break;
2047 }
2048 case AT_ObjCException: {
2049 if (Name == "objc_exception" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2050 return 0;
2051 if (Name == "objc_exception" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2052 return 1;
2053 if (Name == "objc_exception" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2054 return 2;
2055 break;
2056 }
2057 case AT_ObjCExplicitProtocolImpl: {
2058 if (Name == "objc_protocol_requires_explicit_implementation" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2059 return 0;
2060 if (Name == "objc_protocol_requires_explicit_implementation" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2061 return 1;
2062 if (Name == "objc_protocol_requires_explicit_implementation" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2063 return 2;
2064 break;
2065 }
2066 case AT_ObjCExternallyRetained: {
2067 if (Name == "objc_externally_retained" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2068 return 0;
2069 if (Name == "objc_externally_retained" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2070 return 1;
2071 if (Name == "objc_externally_retained" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2072 return 2;
2073 break;
2074 }
2075 case AT_ObjCGC: {
2076 if (Name == "objc_gc" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2077 return 0;
2078 if (Name == "objc_gc" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2079 return 1;
2080 if (Name == "objc_gc" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2081 return 2;
2082 break;
2083 }
2084 case AT_ObjCIndependentClass: {
2085 if (Name == "objc_independent_class" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2086 return 0;
2087 if (Name == "objc_independent_class" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2088 return 1;
2089 if (Name == "objc_independent_class" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2090 return 2;
2091 break;
2092 }
2093 case AT_ObjCInertUnsafeUnretained: {
2094 if (Name == "__unsafe_unretained" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
2095 return 0;
2096 break;
2097 }
2098 case AT_ObjCKindOf: {
2099 if (Name == "__kindof" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
2100 return 0;
2101 break;
2102 }
2103 case AT_ObjCMethodFamily: {
2104 if (Name == "objc_method_family" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2105 return 0;
2106 if (Name == "objc_method_family" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2107 return 1;
2108 if (Name == "objc_method_family" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2109 return 2;
2110 break;
2111 }
2112 case AT_ObjCNSObject: {
2113 if (Name == "NSObject" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2114 return 0;
2115 if (Name == "NSObject" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2116 return 1;
2117 if (Name == "NSObject" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2118 return 2;
2119 break;
2120 }
2121 case AT_ObjCNonLazyClass: {
2122 if (Name == "objc_nonlazy_class" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2123 return 0;
2124 if (Name == "objc_nonlazy_class" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2125 return 1;
2126 if (Name == "objc_nonlazy_class" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2127 return 2;
2128 break;
2129 }
2130 case AT_ObjCNonRuntimeProtocol: {
2131 if (Name == "objc_non_runtime_protocol" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2132 return 0;
2133 if (Name == "objc_non_runtime_protocol" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2134 return 1;
2135 if (Name == "objc_non_runtime_protocol" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2136 return 2;
2137 break;
2138 }
2139 case AT_ObjCOwnership: {
2140 if (Name == "objc_ownership" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2141 return 0;
2142 if (Name == "objc_ownership" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2143 return 1;
2144 if (Name == "objc_ownership" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2145 return 2;
2146 break;
2147 }
2148 case AT_ObjCPreciseLifetime: {
2149 if (Name == "objc_precise_lifetime" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2150 return 0;
2151 if (Name == "objc_precise_lifetime" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2152 return 1;
2153 if (Name == "objc_precise_lifetime" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2154 return 2;
2155 break;
2156 }
2157 case AT_ObjCRequiresPropertyDefs: {
2158 if (Name == "objc_requires_property_definitions" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2159 return 0;
2160 if (Name == "objc_requires_property_definitions" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2161 return 1;
2162 if (Name == "objc_requires_property_definitions" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2163 return 2;
2164 break;
2165 }
2166 case AT_ObjCRequiresSuper: {
2167 if (Name == "objc_requires_super" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2168 return 0;
2169 if (Name == "objc_requires_super" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2170 return 1;
2171 if (Name == "objc_requires_super" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2172 return 2;
2173 break;
2174 }
2175 case AT_ObjCReturnsInnerPointer: {
2176 if (Name == "objc_returns_inner_pointer" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2177 return 0;
2178 if (Name == "objc_returns_inner_pointer" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2179 return 1;
2180 if (Name == "objc_returns_inner_pointer" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2181 return 2;
2182 break;
2183 }
2184 case AT_ObjCRootClass: {
2185 if (Name == "objc_root_class" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2186 return 0;
2187 if (Name == "objc_root_class" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2188 return 1;
2189 if (Name == "objc_root_class" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2190 return 2;
2191 break;
2192 }
2193 case AT_ObjCRuntimeName: {
2194 if (Name == "objc_runtime_name" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2195 return 0;
2196 if (Name == "objc_runtime_name" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2197 return 1;
2198 if (Name == "objc_runtime_name" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2199 return 2;
2200 break;
2201 }
2202 case AT_ObjCRuntimeVisible: {
2203 if (Name == "objc_runtime_visible" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2204 return 0;
2205 if (Name == "objc_runtime_visible" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2206 return 1;
2207 if (Name == "objc_runtime_visible" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2208 return 2;
2209 break;
2210 }
2211 case AT_ObjCSubclassingRestricted: {
2212 if (Name == "objc_subclassing_restricted" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2213 return 0;
2214 if (Name == "objc_subclassing_restricted" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2215 return 1;
2216 if (Name == "objc_subclassing_restricted" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2217 return 2;
2218 break;
2219 }
2220 case AT_OpenCLAccess: {
2221 if (Name == "__read_only" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
2222 return 0;
2223 if (Name == "read_only" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
2224 return 1;
2225 if (Name == "__write_only" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
2226 return 2;
2227 if (Name == "write_only" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
2228 return 3;
2229 if (Name == "__read_write" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
2230 return 4;
2231 if (Name == "read_write" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
2232 return 5;
2233 break;
2234 }
2235 case AT_OpenCLConstantAddressSpace: {
2236 if (Name == "__constant" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
2237 return 0;
2238 if (Name == "constant" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
2239 return 1;
2240 if (Name == "opencl_constant" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2241 return 2;
2242 if (Name == "opencl_constant" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2243 return 3;
2244 if (Name == "opencl_constant" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2245 return 4;
2246 break;
2247 }
2248 case AT_OpenCLGenericAddressSpace: {
2249 if (Name == "__generic" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
2250 return 0;
2251 if (Name == "generic" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
2252 return 1;
2253 if (Name == "opencl_generic" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2254 return 2;
2255 if (Name == "opencl_generic" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2256 return 3;
2257 if (Name == "opencl_generic" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2258 return 4;
2259 break;
2260 }
2261 case AT_OpenCLGlobalAddressSpace: {
2262 if (Name == "__global" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
2263 return 0;
2264 if (Name == "global" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
2265 return 1;
2266 if (Name == "opencl_global" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2267 return 2;
2268 if (Name == "opencl_global" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2269 return 3;
2270 if (Name == "opencl_global" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2271 return 4;
2272 break;
2273 }
2274 case AT_OpenCLGlobalDeviceAddressSpace: {
2275 if (Name == "opencl_global_device" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2276 return 0;
2277 if (Name == "opencl_global_device" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2278 return 1;
2279 if (Name == "opencl_global_device" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2280 return 2;
2281 break;
2282 }
2283 case AT_OpenCLGlobalHostAddressSpace: {
2284 if (Name == "opencl_global_host" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2285 return 0;
2286 if (Name == "opencl_global_host" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2287 return 1;
2288 if (Name == "opencl_global_host" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2289 return 2;
2290 break;
2291 }
2292 case AT_OpenCLIntelReqdSubGroupSize: {
2293 if (Name == "intel_reqd_sub_group_size" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2294 return 0;
2295 break;
2296 }
2297 case AT_OpenCLKernel: {
2298 if (Name == "__kernel" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
2299 return 0;
2300 if (Name == "kernel" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
2301 return 1;
2302 break;
2303 }
2304 case AT_OpenCLLocalAddressSpace: {
2305 if (Name == "__local" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
2306 return 0;
2307 if (Name == "local" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
2308 return 1;
2309 if (Name == "opencl_local" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2310 return 2;
2311 if (Name == "opencl_local" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2312 return 3;
2313 if (Name == "opencl_local" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2314 return 4;
2315 break;
2316 }
2317 case AT_OpenCLNoSVM: {
2318 if (Name == "nosvm" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2319 return 0;
2320 break;
2321 }
2322 case AT_OpenCLPrivateAddressSpace: {
2323 if (Name == "__private" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
2324 return 0;
2325 if (Name == "private" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
2326 return 1;
2327 if (Name == "opencl_private" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2328 return 2;
2329 if (Name == "opencl_private" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2330 return 3;
2331 if (Name == "opencl_private" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2332 return 4;
2333 break;
2334 }
2335 case AT_OpenCLUnrollHint: {
2336 if (Name == "opencl_unroll_hint" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2337 return 0;
2338 break;
2339 }
2340 case AT_OptimizeNone: {
2341 if (Name == "optnone" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2342 return 0;
2343 if (Name == "optnone" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2344 return 1;
2345 if (Name == "optnone" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2346 return 2;
2347 break;
2348 }
2349 case AT_Overloadable: {
2350 if (Name == "overloadable" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2351 return 0;
2352 if (Name == "overloadable" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2353 return 1;
2354 if (Name == "overloadable" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2355 return 2;
2356 break;
2357 }
2358 case AT_Owner: {
2359 if (Name == "Owner" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gsl")
2360 return 0;
2361 break;
2362 }
2363 case AT_Ownership: {
2364 if (Name == "ownership_holds" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2365 return 0;
2366 if (Name == "ownership_holds" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2367 return 1;
2368 if (Name == "ownership_holds" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2369 return 2;
2370 if (Name == "ownership_returns" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2371 return 3;
2372 if (Name == "ownership_returns" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2373 return 4;
2374 if (Name == "ownership_returns" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2375 return 5;
2376 if (Name == "ownership_takes" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2377 return 6;
2378 if (Name == "ownership_takes" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2379 return 7;
2380 if (Name == "ownership_takes" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2381 return 8;
2382 break;
2383 }
2384 case AT_Packed: {
2385 if (Name == "packed" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2386 return 0;
2387 if (Name == "packed" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
2388 return 1;
2389 if (Name == "packed" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
2390 return 2;
2391 break;
2392 }
2393 case AT_ParamTypestate: {
2394 if (Name == "param_typestate" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2395 return 0;
2396 if (Name == "param_typestate" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2397 return 1;
2398 break;
2399 }
2400 case AT_Pascal: {
2401 if (Name == "pascal" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2402 return 0;
2403 if (Name == "pascal" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2404 return 1;
2405 if (Name == "pascal" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2406 return 2;
2407 if (Name == "__pascal" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
2408 return 3;
2409 if (Name == "_pascal" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
2410 return 4;
2411 break;
2412 }
2413 case AT_PassObjectSize: {
2414 if (Name == "pass_object_size" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2415 return 0;
2416 if (Name == "pass_object_size" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2417 return 1;
2418 if (Name == "pass_object_size" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2419 return 2;
2420 if (Name == "pass_dynamic_object_size" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2421 return 3;
2422 if (Name == "pass_dynamic_object_size" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2423 return 4;
2424 if (Name == "pass_dynamic_object_size" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2425 return 5;
2426 break;
2427 }
2428 case AT_PatchableFunctionEntry: {
2429 if (Name == "patchable_function_entry" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2430 return 0;
2431 if (Name == "patchable_function_entry" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
2432 return 1;
2433 if (Name == "patchable_function_entry" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
2434 return 2;
2435 break;
2436 }
2437 case AT_Pcs: {
2438 if (Name == "pcs" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2439 return 0;
2440 if (Name == "pcs" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
2441 return 1;
2442 if (Name == "pcs" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
2443 return 2;
2444 break;
2445 }
2446 case AT_Pointer: {
2447 if (Name == "Pointer" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gsl")
2448 return 0;
2449 break;
2450 }
2451 case AT_PragmaClangBSSSection: {
2452 break;
2453 }
2454 case AT_PragmaClangDataSection: {
2455 break;
2456 }
2457 case AT_PragmaClangRelroSection: {
2458 break;
2459 }
2460 case AT_PragmaClangRodataSection: {
2461 break;
2462 }
2463 case AT_PragmaClangTextSection: {
2464 break;
2465 }
2466 case AT_PreferredName: {
2467 if (Name == "preferred_name" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2468 return 0;
2469 if (Name == "preferred_name" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2470 return 1;
2471 break;
2472 }
2473 case AT_PreferredType: {
2474 if (Name == "preferred_type" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2475 return 0;
2476 if (Name == "preferred_type" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2477 return 1;
2478 if (Name == "preferred_type" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2479 return 2;
2480 break;
2481 }
2482 case AT_PreserveAll: {
2483 if (Name == "preserve_all" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2484 return 0;
2485 if (Name == "preserve_all" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2486 return 1;
2487 if (Name == "preserve_all" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2488 return 2;
2489 break;
2490 }
2491 case AT_PreserveMost: {
2492 if (Name == "preserve_most" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2493 return 0;
2494 if (Name == "preserve_most" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2495 return 1;
2496 if (Name == "preserve_most" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2497 return 2;
2498 break;
2499 }
2500 case AT_PreserveNone: {
2501 if (Name == "preserve_none" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2502 return 0;
2503 if (Name == "preserve_none" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2504 return 1;
2505 if (Name == "preserve_none" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2506 return 2;
2507 break;
2508 }
2509 case AT_PtGuardedBy: {
2510 if (Name == "pt_guarded_by" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2511 return 0;
2512 break;
2513 }
2514 case AT_PtGuardedVar: {
2515 if (Name == "pt_guarded_var" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2516 return 0;
2517 if (Name == "pt_guarded_var" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2518 return 1;
2519 break;
2520 }
2521 case AT_Ptr32: {
2522 if (Name == "__ptr32" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
2523 return 0;
2524 break;
2525 }
2526 case AT_Ptr64: {
2527 if (Name == "__ptr64" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
2528 return 0;
2529 break;
2530 }
2531 case AT_Pure: {
2532 if (Name == "pure" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2533 return 0;
2534 if (Name == "pure" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
2535 return 1;
2536 if (Name == "pure" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
2537 return 2;
2538 break;
2539 }
2540 case AT_RISCVRVVVectorBits: {
2541 if (Name == "riscv_rvv_vector_bits" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2542 return 0;
2543 break;
2544 }
2545 case AT_RISCVVectorCC: {
2546 if (Name == "vector_cc" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "riscv")
2547 return 0;
2548 if (Name == "vector_cc" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "riscv")
2549 return 1;
2550 if (Name == "riscv_vector_cc" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2551 return 2;
2552 if (Name == "riscv_vector_cc" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2553 return 3;
2554 if (Name == "riscv_vector_cc" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2555 return 4;
2556 break;
2557 }
2558 case AT_RandomizeLayout: {
2559 if (Name == "randomize_layout" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2560 return 0;
2561 if (Name == "randomize_layout" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
2562 return 1;
2563 if (Name == "randomize_layout" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
2564 return 2;
2565 break;
2566 }
2567 case AT_ReadOnlyPlacement: {
2568 if (Name == "enforce_read_only_placement" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2569 return 0;
2570 if (Name == "enforce_read_only_placement" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2571 return 1;
2572 if (Name == "enforce_read_only_placement" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2573 return 2;
2574 break;
2575 }
2576 case AT_RegCall: {
2577 if (Name == "regcall" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2578 return 0;
2579 if (Name == "regcall" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
2580 return 1;
2581 if (Name == "regcall" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
2582 return 2;
2583 if (Name == "__regcall" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
2584 return 3;
2585 break;
2586 }
2587 case AT_Regparm: {
2588 if (Name == "regparm" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2589 return 0;
2590 if (Name == "regparm" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
2591 return 1;
2592 if (Name == "regparm" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
2593 return 2;
2594 break;
2595 }
2596 case AT_Reinitializes: {
2597 if (Name == "reinitializes" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2598 return 0;
2599 if (Name == "reinitializes" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2600 return 1;
2601 break;
2602 }
2603 case AT_ReleaseCapability: {
2604 if (Name == "release_capability" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2605 return 0;
2606 if (Name == "release_capability" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2607 return 1;
2608 if (Name == "release_shared_capability" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2609 return 2;
2610 if (Name == "release_shared_capability" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2611 return 3;
2612 if (Name == "release_generic_capability" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2613 return 4;
2614 if (Name == "release_generic_capability" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2615 return 5;
2616 if (Name == "unlock_function" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2617 return 6;
2618 if (Name == "unlock_function" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2619 return 7;
2620 break;
2621 }
2622 case AT_ReleaseHandle: {
2623 if (Name == "release_handle" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2624 return 0;
2625 if (Name == "release_handle" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2626 return 1;
2627 if (Name == "release_handle" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2628 return 2;
2629 break;
2630 }
2631 case AT_RenderScriptKernel: {
2632 if (Name == "kernel" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2633 return 0;
2634 break;
2635 }
2636 case AT_ReqdWorkGroupSize: {
2637 if (Name == "reqd_work_group_size" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2638 return 0;
2639 break;
2640 }
2641 case AT_RequiresCapability: {
2642 if (Name == "requires_capability" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2643 return 0;
2644 if (Name == "requires_capability" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2645 return 1;
2646 if (Name == "exclusive_locks_required" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2647 return 2;
2648 if (Name == "exclusive_locks_required" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2649 return 3;
2650 if (Name == "requires_shared_capability" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2651 return 4;
2652 if (Name == "requires_shared_capability" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2653 return 5;
2654 if (Name == "shared_locks_required" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2655 return 6;
2656 if (Name == "shared_locks_required" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2657 return 7;
2658 break;
2659 }
2660 case AT_Restrict: {
2661 if (Name == "restrict" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
2662 return 0;
2663 if (Name == "malloc" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2664 return 1;
2665 if (Name == "malloc" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
2666 return 2;
2667 if (Name == "malloc" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
2668 return 3;
2669 break;
2670 }
2671 case AT_Retain: {
2672 if (Name == "retain" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2673 return 0;
2674 if (Name == "retain" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
2675 return 1;
2676 if (Name == "retain" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
2677 return 2;
2678 break;
2679 }
2680 case AT_ReturnTypestate: {
2681 if (Name == "return_typestate" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2682 return 0;
2683 if (Name == "return_typestate" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2684 return 1;
2685 break;
2686 }
2687 case AT_ReturnsNonNull: {
2688 if (Name == "returns_nonnull" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2689 return 0;
2690 if (Name == "returns_nonnull" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
2691 return 1;
2692 if (Name == "returns_nonnull" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
2693 return 2;
2694 break;
2695 }
2696 case AT_ReturnsTwice: {
2697 if (Name == "returns_twice" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2698 return 0;
2699 if (Name == "returns_twice" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
2700 return 1;
2701 if (Name == "returns_twice" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
2702 return 2;
2703 break;
2704 }
2705 case AT_SPtr: {
2706 if (Name == "__sptr" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
2707 return 0;
2708 break;
2709 }
2710 case AT_SYCLKernel: {
2711 if (Name == "sycl_kernel" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2712 return 0;
2713 if (Name == "sycl_kernel" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2714 return 1;
2715 if (Name == "sycl_kernel" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2716 return 2;
2717 break;
2718 }
2719 case AT_SYCLSpecialClass: {
2720 if (Name == "sycl_special_class" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2721 return 0;
2722 if (Name == "sycl_special_class" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2723 return 1;
2724 if (Name == "sycl_special_class" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2725 return 2;
2726 break;
2727 }
2728 case AT_ScopedLockable: {
2729 if (Name == "scoped_lockable" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2730 return 0;
2731 if (Name == "scoped_lockable" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2732 return 1;
2733 break;
2734 }
2735 case AT_Section: {
2736 if (Name == "section" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2737 return 0;
2738 if (Name == "section" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
2739 return 1;
2740 if (Name == "section" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
2741 return 2;
2742 if (Name == "allocate" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
2743 return 3;
2744 break;
2745 }
2746 case AT_SelectAny: {
2747 if (Name == "selectany" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
2748 return 0;
2749 if (Name == "selectany" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2750 return 1;
2751 if (Name == "selectany" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
2752 return 2;
2753 if (Name == "selectany" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
2754 return 3;
2755 break;
2756 }
2757 case AT_Sentinel: {
2758 if (Name == "sentinel" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2759 return 0;
2760 if (Name == "sentinel" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
2761 return 1;
2762 if (Name == "sentinel" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
2763 return 2;
2764 break;
2765 }
2766 case AT_SetTypestate: {
2767 if (Name == "set_typestate" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2768 return 0;
2769 if (Name == "set_typestate" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2770 return 1;
2771 break;
2772 }
2773 case AT_SharedTrylockFunction: {
2774 if (Name == "shared_trylock_function" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2775 return 0;
2776 break;
2777 }
2778 case AT_SizedBy: {
2779 if (Name == "sized_by" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2780 return 0;
2781 if (Name == "sized_by" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2782 return 1;
2783 if (Name == "sized_by" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2784 return 2;
2785 break;
2786 }
2787 case AT_SizedByOrNull: {
2788 if (Name == "sized_by_or_null" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2789 return 0;
2790 if (Name == "sized_by_or_null" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2791 return 1;
2792 if (Name == "sized_by_or_null" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2793 return 2;
2794 break;
2795 }
2796 case AT_SpeculativeLoadHardening: {
2797 if (Name == "speculative_load_hardening" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2798 return 0;
2799 if (Name == "speculative_load_hardening" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2800 return 1;
2801 if (Name == "speculative_load_hardening" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2802 return 2;
2803 break;
2804 }
2805 case AT_StandaloneDebug: {
2806 if (Name == "standalone_debug" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2807 return 0;
2808 if (Name == "standalone_debug" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2809 return 1;
2810 break;
2811 }
2812 case AT_StdCall: {
2813 if (Name == "stdcall" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2814 return 0;
2815 if (Name == "stdcall" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
2816 return 1;
2817 if (Name == "stdcall" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
2818 return 2;
2819 if (Name == "__stdcall" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
2820 return 3;
2821 if (Name == "_stdcall" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
2822 return 4;
2823 break;
2824 }
2825 case AT_StrictFP: {
2826 break;
2827 }
2828 case AT_StrictGuardStackCheck: {
2829 if (Name == "strict_gs_check" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
2830 return 0;
2831 break;
2832 }
2833 case AT_Suppress: {
2834 if (Name == "suppress" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gsl")
2835 return 0;
2836 if (Name == "suppress" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2837 return 1;
2838 if (Name == "suppress" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2839 return 2;
2840 if (Name == "suppress" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2841 return 3;
2842 break;
2843 }
2844 case AT_SwiftAsync: {
2845 if (Name == "swift_async" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2846 return 0;
2847 if (Name == "swift_async" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2848 return 1;
2849 if (Name == "swift_async" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2850 return 2;
2851 break;
2852 }
2853 case AT_SwiftAsyncCall: {
2854 if (Name == "swiftasynccall" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2855 return 0;
2856 if (Name == "swiftasynccall" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2857 return 1;
2858 if (Name == "swiftasynccall" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2859 return 2;
2860 break;
2861 }
2862 case AT_SwiftAsyncContext: {
2863 if (Name == "swift_async_context" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2864 return 0;
2865 if (Name == "swift_async_context" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2866 return 1;
2867 if (Name == "swift_async_context" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2868 return 2;
2869 break;
2870 }
2871 case AT_SwiftAsyncError: {
2872 if (Name == "swift_async_error" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2873 return 0;
2874 if (Name == "swift_async_error" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2875 return 1;
2876 if (Name == "swift_async_error" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2877 return 2;
2878 break;
2879 }
2880 case AT_SwiftAsyncName: {
2881 if (Name == "swift_async_name" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2882 return 0;
2883 break;
2884 }
2885 case AT_SwiftAttr: {
2886 if (Name == "swift_attr" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2887 return 0;
2888 break;
2889 }
2890 case AT_SwiftBridge: {
2891 if (Name == "swift_bridge" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2892 return 0;
2893 break;
2894 }
2895 case AT_SwiftBridgedTypedef: {
2896 if (Name == "swift_bridged_typedef" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2897 return 0;
2898 break;
2899 }
2900 case AT_SwiftCall: {
2901 if (Name == "swiftcall" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2902 return 0;
2903 if (Name == "swiftcall" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2904 return 1;
2905 if (Name == "swiftcall" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2906 return 2;
2907 break;
2908 }
2909 case AT_SwiftContext: {
2910 if (Name == "swift_context" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2911 return 0;
2912 if (Name == "swift_context" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2913 return 1;
2914 if (Name == "swift_context" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2915 return 2;
2916 break;
2917 }
2918 case AT_SwiftError: {
2919 if (Name == "swift_error" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2920 return 0;
2921 break;
2922 }
2923 case AT_SwiftErrorResult: {
2924 if (Name == "swift_error_result" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2925 return 0;
2926 if (Name == "swift_error_result" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2927 return 1;
2928 if (Name == "swift_error_result" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2929 return 2;
2930 break;
2931 }
2932 case AT_SwiftIndirectResult: {
2933 if (Name == "swift_indirect_result" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2934 return 0;
2935 if (Name == "swift_indirect_result" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
2936 return 1;
2937 if (Name == "swift_indirect_result" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
2938 return 2;
2939 break;
2940 }
2941 case AT_SwiftName: {
2942 if (Name == "swift_name" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2943 return 0;
2944 break;
2945 }
2946 case AT_SwiftNewType: {
2947 if (Name == "swift_newtype" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2948 return 0;
2949 if (Name == "swift_wrapper" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2950 return 1;
2951 break;
2952 }
2953 case AT_SwiftObjCMembers: {
2954 if (Name == "swift_objc_members" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2955 return 0;
2956 break;
2957 }
2958 case AT_SwiftPrivate: {
2959 if (Name == "swift_private" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2960 return 0;
2961 break;
2962 }
2963 case AT_SysVABI: {
2964 if (Name == "sysv_abi" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2965 return 0;
2966 if (Name == "sysv_abi" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
2967 return 1;
2968 if (Name == "sysv_abi" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
2969 return 2;
2970 break;
2971 }
2972 case AT_TLSModel: {
2973 if (Name == "tls_model" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2974 return 0;
2975 if (Name == "tls_model" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
2976 return 1;
2977 if (Name == "tls_model" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
2978 return 2;
2979 break;
2980 }
2981 case AT_Target: {
2982 if (Name == "target" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2983 return 0;
2984 if (Name == "target" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
2985 return 1;
2986 if (Name == "target" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
2987 return 2;
2988 break;
2989 }
2990 case AT_TargetClones: {
2991 if (Name == "target_clones" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
2992 return 0;
2993 if (Name == "target_clones" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
2994 return 1;
2995 if (Name == "target_clones" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
2996 return 2;
2997 break;
2998 }
2999 case AT_TargetVersion: {
3000 if (Name == "target_version" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3001 return 0;
3002 if (Name == "target_version" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
3003 return 1;
3004 if (Name == "target_version" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
3005 return 2;
3006 break;
3007 }
3008 case AT_TestTypestate: {
3009 if (Name == "test_typestate" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3010 return 0;
3011 if (Name == "test_typestate" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
3012 return 1;
3013 break;
3014 }
3015 case AT_ThisCall: {
3016 if (Name == "thiscall" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3017 return 0;
3018 if (Name == "thiscall" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
3019 return 1;
3020 if (Name == "thiscall" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
3021 return 2;
3022 if (Name == "__thiscall" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
3023 return 3;
3024 if (Name == "_thiscall" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
3025 return 4;
3026 break;
3027 }
3028 case AT_Thread: {
3029 if (Name == "thread" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
3030 return 0;
3031 break;
3032 }
3033 case AT_TransparentUnion: {
3034 if (Name == "transparent_union" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3035 return 0;
3036 if (Name == "transparent_union" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
3037 return 1;
3038 if (Name == "transparent_union" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
3039 return 2;
3040 break;
3041 }
3042 case AT_TrivialABI: {
3043 if (Name == "trivial_abi" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3044 return 0;
3045 if (Name == "trivial_abi" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
3046 return 1;
3047 break;
3048 }
3049 case AT_TryAcquireCapability: {
3050 if (Name == "try_acquire_capability" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3051 return 0;
3052 if (Name == "try_acquire_capability" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
3053 return 1;
3054 if (Name == "try_acquire_shared_capability" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3055 return 2;
3056 if (Name == "try_acquire_shared_capability" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
3057 return 3;
3058 break;
3059 }
3060 case AT_TypeNonNull: {
3061 if (Name == "_Nonnull" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
3062 return 0;
3063 break;
3064 }
3065 case AT_TypeNullUnspecified: {
3066 if (Name == "_Null_unspecified" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
3067 return 0;
3068 break;
3069 }
3070 case AT_TypeNullable: {
3071 if (Name == "_Nullable" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
3072 return 0;
3073 break;
3074 }
3075 case AT_TypeNullableResult: {
3076 if (Name == "_Nullable_result" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
3077 return 0;
3078 break;
3079 }
3080 case AT_TypeTagForDatatype: {
3081 if (Name == "type_tag_for_datatype" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3082 return 0;
3083 if (Name == "type_tag_for_datatype" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
3084 return 1;
3085 if (Name == "type_tag_for_datatype" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
3086 return 2;
3087 break;
3088 }
3089 case AT_TypeVisibility: {
3090 if (Name == "type_visibility" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3091 return 0;
3092 if (Name == "type_visibility" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
3093 return 1;
3094 if (Name == "type_visibility" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
3095 return 2;
3096 break;
3097 }
3098 case AT_UPtr: {
3099 if (Name == "__uptr" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
3100 return 0;
3101 break;
3102 }
3103 case AT_Unavailable: {
3104 if (Name == "unavailable" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3105 return 0;
3106 if (Name == "unavailable" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
3107 return 1;
3108 if (Name == "unavailable" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
3109 return 2;
3110 break;
3111 }
3112 case AT_Uninitialized: {
3113 if (Name == "uninitialized" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3114 return 0;
3115 if (Name == "uninitialized" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
3116 return 1;
3117 break;
3118 }
3119 case AT_Unlikely: {
3120 if (Name == "unlikely" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "")
3121 return 0;
3122 if (Name == "unlikely" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
3123 return 1;
3124 break;
3125 }
3126 case AT_UnsafeBufferUsage: {
3127 if (Name == "unsafe_buffer_usage" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3128 return 0;
3129 if (Name == "unsafe_buffer_usage" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
3130 return 1;
3131 if (Name == "unsafe_buffer_usage" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
3132 return 2;
3133 break;
3134 }
3135 case AT_Unused: {
3136 if (Name == "maybe_unused" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "")
3137 return 0;
3138 if (Name == "unused" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3139 return 1;
3140 if (Name == "unused" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
3141 return 2;
3142 if (Name == "unused" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
3143 return 3;
3144 if (Name == "maybe_unused" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "")
3145 return 4;
3146 break;
3147 }
3148 case AT_UseHandle: {
3149 if (Name == "use_handle" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3150 return 0;
3151 if (Name == "use_handle" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
3152 return 1;
3153 if (Name == "use_handle" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
3154 return 2;
3155 break;
3156 }
3157 case AT_Used: {
3158 if (Name == "used" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3159 return 0;
3160 if (Name == "used" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
3161 return 1;
3162 if (Name == "used" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
3163 return 2;
3164 break;
3165 }
3166 case AT_UsingIfExists: {
3167 if (Name == "using_if_exists" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3168 return 0;
3169 if (Name == "using_if_exists" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
3170 return 1;
3171 break;
3172 }
3173 case AT_Uuid: {
3174 if (Name == "uuid" && getSyntax() == AttributeCommonInfo::AS_Declspec && Scope == "")
3175 return 0;
3176 if (Name == "uuid" && getSyntax() == AttributeCommonInfo::AS_Microsoft && Scope == "")
3177 return 1;
3178 break;
3179 }
3180 case AT_VTablePointerAuthentication: {
3181 if (Name == "ptrauth_vtable_pointer" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3182 return 0;
3183 if (Name == "ptrauth_vtable_pointer" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
3184 return 1;
3185 if (Name == "ptrauth_vtable_pointer" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
3186 return 2;
3187 break;
3188 }
3189 case AT_VecReturn: {
3190 if (Name == "vecreturn" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3191 return 0;
3192 if (Name == "vecreturn" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
3193 return 1;
3194 break;
3195 }
3196 case AT_VecTypeHint: {
3197 if (Name == "vec_type_hint" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3198 return 0;
3199 break;
3200 }
3201 case AT_VectorCall: {
3202 if (Name == "vectorcall" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3203 return 0;
3204 if (Name == "vectorcall" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
3205 return 1;
3206 if (Name == "vectorcall" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
3207 return 2;
3208 if (Name == "__vectorcall" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
3209 return 3;
3210 if (Name == "_vectorcall" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
3211 return 4;
3212 break;
3213 }
3214 case AT_VectorSize: {
3215 if (Name == "vector_size" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3216 return 0;
3217 if (Name == "vector_size" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
3218 return 1;
3219 if (Name == "vector_size" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
3220 return 2;
3221 break;
3222 }
3223 case AT_Visibility: {
3224 if (Name == "visibility" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3225 return 0;
3226 if (Name == "visibility" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
3227 return 1;
3228 if (Name == "visibility" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
3229 return 2;
3230 break;
3231 }
3232 case AT_WarnUnused: {
3233 if (Name == "warn_unused" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3234 return 0;
3235 if (Name == "warn_unused" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
3236 return 1;
3237 if (Name == "warn_unused" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
3238 return 2;
3239 break;
3240 }
3241 case AT_WarnUnusedResult: {
3242 if (Name == "nodiscard" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "")
3243 return 0;
3244 if (Name == "nodiscard" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "")
3245 return 1;
3246 if (Name == "warn_unused_result" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
3247 return 2;
3248 if (Name == "warn_unused_result" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3249 return 3;
3250 if (Name == "warn_unused_result" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
3251 return 4;
3252 if (Name == "warn_unused_result" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
3253 return 5;
3254 break;
3255 }
3256 case AT_Weak: {
3257 if (Name == "weak" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3258 return 0;
3259 if (Name == "weak" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
3260 return 1;
3261 if (Name == "weak" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
3262 return 2;
3263 break;
3264 }
3265 case AT_WeakImport: {
3266 if (Name == "weak_import" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3267 return 0;
3268 if (Name == "weak_import" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
3269 return 1;
3270 if (Name == "weak_import" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
3271 return 2;
3272 break;
3273 }
3274 case AT_WeakRef: {
3275 if (Name == "weakref" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3276 return 0;
3277 if (Name == "weakref" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
3278 return 1;
3279 if (Name == "weakref" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
3280 return 2;
3281 break;
3282 }
3283 case AT_WebAssemblyExportName: {
3284 if (Name == "export_name" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3285 return 0;
3286 if (Name == "export_name" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
3287 return 1;
3288 if (Name == "export_name" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
3289 return 2;
3290 break;
3291 }
3292 case AT_WebAssemblyFuncref: {
3293 if (Name == "__funcref" && getSyntax() == AttributeCommonInfo::AS_Keyword && Scope == "")
3294 return 0;
3295 break;
3296 }
3297 case AT_WebAssemblyImportModule: {
3298 if (Name == "import_module" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3299 return 0;
3300 if (Name == "import_module" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
3301 return 1;
3302 if (Name == "import_module" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
3303 return 2;
3304 break;
3305 }
3306 case AT_WebAssemblyImportName: {
3307 if (Name == "import_name" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3308 return 0;
3309 if (Name == "import_name" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
3310 return 1;
3311 if (Name == "import_name" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
3312 return 2;
3313 break;
3314 }
3315 case AT_WorkGroupSizeHint: {
3316 if (Name == "work_group_size_hint" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3317 return 0;
3318 break;
3319 }
3320 case AT_X86ForceAlignArgPointer: {
3321 if (Name == "force_align_arg_pointer" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3322 return 0;
3323 if (Name == "force_align_arg_pointer" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
3324 return 1;
3325 if (Name == "force_align_arg_pointer" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
3326 return 2;
3327 break;
3328 }
3329 case AT_XRayInstrument: {
3330 if (Name == "xray_always_instrument" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3331 return 0;
3332 if (Name == "xray_always_instrument" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
3333 return 1;
3334 if (Name == "xray_always_instrument" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
3335 return 2;
3336 if (Name == "xray_never_instrument" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3337 return 3;
3338 if (Name == "xray_never_instrument" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
3339 return 4;
3340 if (Name == "xray_never_instrument" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
3341 return 5;
3342 break;
3343 }
3344 case AT_XRayLogArgs: {
3345 if (Name == "xray_log_args" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3346 return 0;
3347 if (Name == "xray_log_args" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "clang")
3348 return 1;
3349 if (Name == "xray_log_args" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "clang")
3350 return 2;
3351 break;
3352 }
3353 case AT_ZeroCallUsedRegs: {
3354 if (Name == "zero_call_used_regs" && getSyntax() == AttributeCommonInfo::AS_GNU && Scope == "")
3355 return 0;
3356 if (Name == "zero_call_used_regs" && getSyntax() == AttributeCommonInfo::AS_CXX11 && Scope == "gnu")
3357 return 1;
3358 if (Name == "zero_call_used_regs" && getSyntax() == AttributeCommonInfo::AS_C23 && Scope == "gnu")
3359 return 2;
3360 break;
3361 }
3362 }
3363 return 0;
3364