Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Details | Last modification | View Log | RSS feed

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