Back to home page

EIC code displayed by LXR

 
 

    


Warning, /include/clang/Sema/AttrSpellingListIndex.inc is written in an unsupported language. File is not indexed.

0001 /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
0002 |*                                                                            *|
0003 |* Code to translate different attribute spellings into internal identifiers  *|
0004 |*                                                                            *|
0005 |* Automatically generated file, do not edit!                                 *|
0006 |* From: Attr.td                                                              *|
0007 |*                                                                            *|
0008 \*===----------------------------------------------------------------------===*/
0009 
0010   switch (getParsedKind()) {
0011     case IgnoredAttribute:
0012     case UnknownAttribute:
0013     case NoSemaHandlerAttribute:
0014       llvm_unreachable("Ignored/unknown shouldn't get here");
0015   case AT_AArch64SVEPcs: {
0016     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0017       return 0;
0018     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0019       return 1;
0020     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0021       return 2;
0022     break;
0023   }
0024   case AT_AArch64VectorPcs: {
0025     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0026       return 0;
0027     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0028       return 1;
0029     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0030       return 2;
0031     break;
0032   }
0033   case AT_AMDGPUFlatWorkGroupSize: {
0034     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0035       return 0;
0036     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0037       return 1;
0038     break;
0039   }
0040   case AT_AMDGPUKernelCall: {
0041     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0042       return 0;
0043     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0044       return 1;
0045     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0046       return 2;
0047     break;
0048   }
0049   case AT_AMDGPUMaxNumWorkGroups: {
0050     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0051       return 0;
0052     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0053       return 1;
0054     break;
0055   }
0056   case AT_AMDGPUNumSGPR: {
0057     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0058       return 0;
0059     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0060       return 1;
0061     break;
0062   }
0063   case AT_AMDGPUNumVGPR: {
0064     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0065       return 0;
0066     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0067       return 1;
0068     break;
0069   }
0070   case AT_AMDGPUWavesPerEU: {
0071     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0072       return 0;
0073     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0074       return 1;
0075     break;
0076   }
0077   case AT_Interrupt: {
0078     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0079       return 0;
0080     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0081       return 1;
0082     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0083       return 2;
0084     break;
0085   }
0086   case AT_AVRSignal: {
0087     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0088       return 0;
0089     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0090       return 1;
0091     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0092       return 2;
0093     break;
0094   }
0095   case AT_AbiTag: {
0096     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0097       return 0;
0098     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0099       return 1;
0100     break;
0101   }
0102   case AT_AcquireCapability: {
0103     if (Name.size() == 18 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0104       return 0;
0105     if (Name.size() == 18 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0106       return 1;
0107     if (Name.size() == 25 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0108       return 2;
0109     if (Name.size() == 25 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0110       return 3;
0111     if (Name.size() == 23 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0112       return 4;
0113     if (Name.size() == 20 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0114       return 5;
0115     break;
0116   }
0117   case AT_AcquireHandle: {
0118     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0119       return 0;
0120     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0121       return 1;
0122     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0123       return 2;
0124     break;
0125   }
0126   case AT_AcquiredAfter: {
0127     return 0;
0128     break;
0129   }
0130   case AT_AcquiredBefore: {
0131     return 0;
0132     break;
0133   }
0134   case AT_AddressSpace: {
0135     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0136       return 0;
0137     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0138       return 1;
0139     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0140       return 2;
0141     break;
0142   }
0143   case AT_Alias: {
0144     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0145       return 0;
0146     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0147       return 1;
0148     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0149       return 2;
0150     break;
0151   }
0152   case AT_AlignValue: {
0153     return 0;
0154     break;
0155   }
0156   case AT_Aligned: {
0157     if (Name == "aligned" && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0158       return 0;
0159     if (Name == "aligned" && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0160       return 1;
0161     if (Name == "aligned" && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0162       return 2;
0163     if (Name.size() == 5 && getSyntax() == AttributeCommonInfo::AS_Declspec && ComputedScope == AttributeCommonInfo::Scope::NONE)
0164       return 3;
0165     if (Name == "alignas" && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
0166       return 4;
0167     if (Name.size() == 8 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
0168       return 5;
0169     break;
0170   }
0171   case AT_AllocAlign: {
0172     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0173       return 0;
0174     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0175       return 1;
0176     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0177       return 2;
0178     break;
0179   }
0180   case AT_AllocSize: {
0181     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0182       return 0;
0183     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0184       return 1;
0185     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0186       return 2;
0187     break;
0188   }
0189   case AT_Allocating: {
0190     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0191       return 0;
0192     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0193       return 1;
0194     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0195       return 2;
0196     break;
0197   }
0198   case AT_AlwaysDestroy: {
0199     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0200       return 0;
0201     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0202       return 1;
0203     break;
0204   }
0205   case AT_AlwaysInline: {
0206     if (Name == "always_inline" && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0207       return 0;
0208     if (Name == "always_inline" && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0209       return 1;
0210     if (Name == "always_inline" && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0211       return 2;
0212     if (Name == "always_inline" && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0213       return 3;
0214     if (Name == "always_inline" && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0215       return 4;
0216     if (Name == "__forceinline" && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
0217       return 5;
0218     break;
0219   }
0220   case AT_AnalyzerNoReturn: {
0221     return 0;
0222     break;
0223   }
0224   case AT_Annotate: {
0225     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0226       return 0;
0227     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0228       return 1;
0229     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0230       return 2;
0231     break;
0232   }
0233   case AT_AnnotateType: {
0234     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0235       return 0;
0236     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0237       return 1;
0238     break;
0239   }
0240   case AT_AnyX86NoCallerSavedRegisters: {
0241     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0242       return 0;
0243     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0244       return 1;
0245     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0246       return 2;
0247     break;
0248   }
0249   case AT_AnyX86NoCfCheck: {
0250     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0251       return 0;
0252     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0253       return 1;
0254     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0255       return 2;
0256     break;
0257   }
0258   case AT_ArcWeakrefUnavailable: {
0259     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0260       return 0;
0261     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0262       return 1;
0263     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0264       return 2;
0265     break;
0266   }
0267   case AT_ArgumentWithTypeTag: {
0268     if (Name.size() == 22 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0269       return 0;
0270     if (Name.size() == 22 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0271       return 1;
0272     if (Name.size() == 22 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0273       return 2;
0274     if (Name.size() == 21 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0275       return 3;
0276     if (Name.size() == 21 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0277       return 4;
0278     if (Name.size() == 21 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0279       return 5;
0280     break;
0281   }
0282   case AT_ArmAgnostic: {
0283     return 0;
0284     break;
0285   }
0286   case AT_ArmBuiltinAlias: {
0287     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0288       return 0;
0289     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0290       return 1;
0291     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0292       return 2;
0293     break;
0294   }
0295   case AT_ArmIn: {
0296     return 0;
0297     break;
0298   }
0299   case AT_ArmInOut: {
0300     return 0;
0301     break;
0302   }
0303   case AT_ArmLocallyStreaming: {
0304     return 0;
0305     break;
0306   }
0307   case AT_ArmMveStrictPolymorphism: {
0308     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0309       return 0;
0310     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0311       return 1;
0312     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0313       return 2;
0314     break;
0315   }
0316   case AT_ArmNew: {
0317     return 0;
0318     break;
0319   }
0320   case AT_ArmOut: {
0321     return 0;
0322     break;
0323   }
0324   case AT_ArmPreserves: {
0325     return 0;
0326     break;
0327   }
0328   case AT_ArmStreaming: {
0329     return 0;
0330     break;
0331   }
0332   case AT_ArmStreamingCompatible: {
0333     return 0;
0334     break;
0335   }
0336   case AT_ArmSveVectorBits: {
0337     return 0;
0338     break;
0339   }
0340   case AT_Artificial: {
0341     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0342       return 0;
0343     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0344       return 1;
0345     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0346       return 2;
0347     break;
0348   }
0349   case AT_AssertCapability: {
0350     if (Name.size() == 17 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0351       return 0;
0352     if (Name.size() == 17 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0353       return 1;
0354     if (Name.size() == 24 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0355       return 2;
0356     if (Name.size() == 24 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0357       return 3;
0358     break;
0359   }
0360   case AT_AssertExclusiveLock: {
0361     return 0;
0362     break;
0363   }
0364   case AT_AssertSharedLock: {
0365     return 0;
0366     break;
0367   }
0368   case AT_AssumeAligned: {
0369     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0370       return 0;
0371     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0372       return 1;
0373     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0374       return 2;
0375     break;
0376   }
0377   case AT_Availability: {
0378     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0379       return 0;
0380     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0381       return 1;
0382     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0383       return 2;
0384     break;
0385   }
0386   case AT_AvailableOnlyInDefaultEvalMethod: {
0387     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0388       return 0;
0389     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0390       return 1;
0391     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0392       return 2;
0393     break;
0394   }
0395   case AT_BPFFastCall: {
0396     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0397       return 0;
0398     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0399       return 1;
0400     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0401       return 2;
0402     break;
0403   }
0404   case AT_BPFPreserveAccessIndex: {
0405     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0406       return 0;
0407     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0408       return 1;
0409     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0410       return 2;
0411     break;
0412   }
0413   case AT_BPFPreserveStaticOffset: {
0414     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0415       return 0;
0416     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0417       return 1;
0418     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0419       return 2;
0420     break;
0421   }
0422   case AT_BTFDeclTag: {
0423     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0424       return 0;
0425     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0426       return 1;
0427     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0428       return 2;
0429     break;
0430   }
0431   case AT_BTFTypeTag: {
0432     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0433       return 0;
0434     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0435       return 1;
0436     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0437       return 2;
0438     break;
0439   }
0440   case AT_Blocking: {
0441     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0442       return 0;
0443     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0444       return 1;
0445     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0446       return 2;
0447     break;
0448   }
0449   case AT_Blocks: {
0450     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0451       return 0;
0452     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0453       return 1;
0454     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0455       return 2;
0456     break;
0457   }
0458   case AT_BuiltinAlias: {
0459     if (Name.size() == 13 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0460       return 0;
0461     if (Name.size() == 13 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0462       return 1;
0463     if (Name.size() == 19 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0464       return 2;
0465     break;
0466   }
0467   case AT_CDecl: {
0468     if (Name.size() == 5 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0469       return 0;
0470     if (Name.size() == 5 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0471       return 1;
0472     if (Name.size() == 5 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0473       return 2;
0474     if (Name.size() == 7 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
0475       return 3;
0476     if (Name.size() == 6 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
0477       return 4;
0478     break;
0479   }
0480   case AT_CFAuditedTransfer: {
0481     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0482       return 0;
0483     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0484       return 1;
0485     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0486       return 2;
0487     break;
0488   }
0489   case AT_CFConsumed: {
0490     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0491       return 0;
0492     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0493       return 1;
0494     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0495       return 2;
0496     break;
0497   }
0498   case AT_CFGuard: {
0499     if (getSyntax() == AttributeCommonInfo::AS_Declspec && ComputedScope == AttributeCommonInfo::Scope::NONE)
0500       return 0;
0501     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0502       return 1;
0503     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0504       return 2;
0505     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0506       return 3;
0507     break;
0508   }
0509   case AT_CFICanonicalJumpTable: {
0510     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0511       return 0;
0512     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0513       return 1;
0514     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0515       return 2;
0516     break;
0517   }
0518   case AT_CFReturnsNotRetained: {
0519     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0520       return 0;
0521     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0522       return 1;
0523     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0524       return 2;
0525     break;
0526   }
0527   case AT_CFReturnsRetained: {
0528     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0529       return 0;
0530     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0531       return 1;
0532     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0533       return 2;
0534     break;
0535   }
0536   case AT_CFUnknownTransfer: {
0537     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0538       return 0;
0539     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0540       return 1;
0541     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0542       return 2;
0543     break;
0544   }
0545   case AT_CPUDispatch: {
0546     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0547       return 0;
0548     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0549       return 1;
0550     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0551       return 2;
0552     if (getSyntax() == AttributeCommonInfo::AS_Declspec && ComputedScope == AttributeCommonInfo::Scope::NONE)
0553       return 3;
0554     break;
0555   }
0556   case AT_CPUSpecific: {
0557     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0558       return 0;
0559     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0560       return 1;
0561     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0562       return 2;
0563     if (getSyntax() == AttributeCommonInfo::AS_Declspec && ComputedScope == AttributeCommonInfo::Scope::NONE)
0564       return 3;
0565     break;
0566   }
0567   case AT_CUDAConstant: {
0568     if (Name.size() == 8 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0569       return 0;
0570     if (Name.size() == 12 && getSyntax() == AttributeCommonInfo::AS_Declspec && ComputedScope == AttributeCommonInfo::Scope::NONE)
0571       return 1;
0572     break;
0573   }
0574   case AT_CUDADevice: {
0575     if (Name.size() == 6 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0576       return 0;
0577     if (Name.size() == 10 && getSyntax() == AttributeCommonInfo::AS_Declspec && ComputedScope == AttributeCommonInfo::Scope::NONE)
0578       return 1;
0579     break;
0580   }
0581   case AT_CUDADeviceBuiltinSurfaceType: {
0582     if (Name.size() == 27 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0583       return 0;
0584     if (Name.size() == 31 && getSyntax() == AttributeCommonInfo::AS_Declspec && ComputedScope == AttributeCommonInfo::Scope::NONE)
0585       return 1;
0586     break;
0587   }
0588   case AT_CUDADeviceBuiltinTextureType: {
0589     if (Name.size() == 27 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0590       return 0;
0591     if (Name.size() == 31 && getSyntax() == AttributeCommonInfo::AS_Declspec && ComputedScope == AttributeCommonInfo::Scope::NONE)
0592       return 1;
0593     break;
0594   }
0595   case AT_CUDAGlobal: {
0596     if (Name.size() == 6 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0597       return 0;
0598     if (Name.size() == 10 && getSyntax() == AttributeCommonInfo::AS_Declspec && ComputedScope == AttributeCommonInfo::Scope::NONE)
0599       return 1;
0600     break;
0601   }
0602   case AT_CUDAGridConstant: {
0603     if (Name.size() == 13 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0604       return 0;
0605     if (Name.size() == 17 && getSyntax() == AttributeCommonInfo::AS_Declspec && ComputedScope == AttributeCommonInfo::Scope::NONE)
0606       return 1;
0607     break;
0608   }
0609   case AT_CUDAHost: {
0610     if (Name.size() == 4 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0611       return 0;
0612     if (Name.size() == 8 && getSyntax() == AttributeCommonInfo::AS_Declspec && ComputedScope == AttributeCommonInfo::Scope::NONE)
0613       return 1;
0614     break;
0615   }
0616   case AT_CUDAInvalidTarget: {
0617     return 0;
0618     break;
0619   }
0620   case AT_CUDALaunchBounds: {
0621     if (Name.size() == 13 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0622       return 0;
0623     if (Name.size() == 17 && getSyntax() == AttributeCommonInfo::AS_Declspec && ComputedScope == AttributeCommonInfo::Scope::NONE)
0624       return 1;
0625     break;
0626   }
0627   case AT_CUDAShared: {
0628     if (Name.size() == 6 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0629       return 0;
0630     if (Name.size() == 10 && getSyntax() == AttributeCommonInfo::AS_Declspec && ComputedScope == AttributeCommonInfo::Scope::NONE)
0631       return 1;
0632     break;
0633   }
0634   case AT_CXX11NoReturn: {
0635     if (Name.size() == 8 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::NONE)
0636       return 0;
0637     if (Name.size() == 8 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::NONE)
0638       return 1;
0639     if (Name.size() == 9 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::NONE)
0640       return 2;
0641     break;
0642   }
0643   case AT_CXXAssume: {
0644     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::NONE)
0645       return 0;
0646     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0647       return 1;
0648     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0649       return 2;
0650     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0651       return 3;
0652     break;
0653   }
0654   case AT_CallableWhen: {
0655     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0656       return 0;
0657     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0658       return 1;
0659     break;
0660   }
0661   case AT_Callback: {
0662     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0663       return 0;
0664     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0665       return 1;
0666     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0667       return 2;
0668     break;
0669   }
0670   case AT_CalledOnce: {
0671     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0672       return 0;
0673     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0674       return 1;
0675     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0676       return 2;
0677     break;
0678   }
0679   case AT_Capability: {
0680     if (Name.size() == 10 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0681       return 0;
0682     if (Name.size() == 10 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0683       return 1;
0684     if (Name.size() == 17 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0685       return 2;
0686     if (Name.size() == 17 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0687       return 3;
0688     break;
0689   }
0690   case AT_CarriesDependency: {
0691     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0692       return 0;
0693     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::NONE)
0694       return 1;
0695     break;
0696   }
0697   case AT_Cleanup: {
0698     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0699       return 0;
0700     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0701       return 1;
0702     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0703       return 2;
0704     break;
0705   }
0706   case AT_ClspvLibclcBuiltin: {
0707     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0708       return 0;
0709     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0710       return 1;
0711     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0712       return 2;
0713     break;
0714   }
0715   case AT_CmseNSCall: {
0716     return 0;
0717     break;
0718   }
0719   case AT_CmseNSEntry: {
0720     return 0;
0721     break;
0722   }
0723   case AT_CodeAlign: {
0724     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0725       return 0;
0726     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0727       return 1;
0728     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0729       return 2;
0730     break;
0731   }
0732   case AT_CodeModel: {
0733     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0734       return 0;
0735     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0736       return 1;
0737     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0738       return 2;
0739     break;
0740   }
0741   case AT_CodeSeg: {
0742     return 0;
0743     break;
0744   }
0745   case AT_Cold: {
0746     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0747       return 0;
0748     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0749       return 1;
0750     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0751       return 2;
0752     break;
0753   }
0754   case AT_Common: {
0755     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0756       return 0;
0757     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0758       return 1;
0759     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0760       return 2;
0761     break;
0762   }
0763   case AT_Const: {
0764     if (Name.size() == 5 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0765       return 0;
0766     if (Name.size() == 5 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0767       return 1;
0768     if (Name.size() == 5 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0769       return 2;
0770     if (Name.size() == 7 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0771       return 3;
0772     if (Name.size() == 7 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0773       return 4;
0774     if (Name.size() == 7 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0775       return 5;
0776     break;
0777   }
0778   case AT_ConstInit: {
0779     if (Name.size() == 9 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
0780       return 0;
0781     if (Name.size() == 31 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0782       return 1;
0783     if (Name.size() == 31 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0784       return 2;
0785     break;
0786   }
0787   case AT_Constructor: {
0788     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0789       return 0;
0790     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0791       return 1;
0792     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0793       return 2;
0794     break;
0795   }
0796   case AT_Consumable: {
0797     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0798       return 0;
0799     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0800       return 1;
0801     break;
0802   }
0803   case AT_ConsumableAutoCast: {
0804     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0805       return 0;
0806     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0807       return 1;
0808     break;
0809   }
0810   case AT_ConsumableSetOnRead: {
0811     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0812       return 0;
0813     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0814       return 1;
0815     break;
0816   }
0817   case AT_Convergent: {
0818     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0819       return 0;
0820     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0821       return 1;
0822     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0823       return 2;
0824     break;
0825   }
0826   case AT_CoroAwaitElidable: {
0827     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0828       return 0;
0829     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0830       return 1;
0831     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0832       return 2;
0833     break;
0834   }
0835   case AT_CoroAwaitElidableArgument: {
0836     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0837       return 0;
0838     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0839       return 1;
0840     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0841       return 2;
0842     break;
0843   }
0844   case AT_CoroDisableLifetimeBound: {
0845     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0846       return 0;
0847     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0848       return 1;
0849     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0850       return 2;
0851     break;
0852   }
0853   case AT_CoroLifetimeBound: {
0854     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0855       return 0;
0856     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0857       return 1;
0858     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0859       return 2;
0860     break;
0861   }
0862   case AT_CoroOnlyDestroyWhenComplete: {
0863     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0864       return 0;
0865     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0866       return 1;
0867     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0868       return 2;
0869     break;
0870   }
0871   case AT_CoroReturnType: {
0872     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0873       return 0;
0874     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0875       return 1;
0876     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0877       return 2;
0878     break;
0879   }
0880   case AT_CoroWrapper: {
0881     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0882       return 0;
0883     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0884       return 1;
0885     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0886       return 2;
0887     break;
0888   }
0889   case AT_CountedBy: {
0890     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0891       return 0;
0892     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0893       return 1;
0894     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0895       return 2;
0896     break;
0897   }
0898   case AT_CountedByOrNull: {
0899     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0900       return 0;
0901     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0902       return 1;
0903     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0904       return 2;
0905     break;
0906   }
0907   case AT_DLLExport: {
0908     if (getSyntax() == AttributeCommonInfo::AS_Declspec && ComputedScope == AttributeCommonInfo::Scope::NONE)
0909       return 0;
0910     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0911       return 1;
0912     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0913       return 2;
0914     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0915       return 3;
0916     break;
0917   }
0918   case AT_DLLExportStaticLocal: {
0919     return 0;
0920     break;
0921   }
0922   case AT_DLLImport: {
0923     if (getSyntax() == AttributeCommonInfo::AS_Declspec && ComputedScope == AttributeCommonInfo::Scope::NONE)
0924       return 0;
0925     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0926       return 1;
0927     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0928       return 2;
0929     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0930       return 3;
0931     break;
0932   }
0933   case AT_DLLImportStaticLocal: {
0934     return 0;
0935     break;
0936   }
0937   case AT_Deprecated: {
0938     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0939       return 0;
0940     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0941       return 1;
0942     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0943       return 2;
0944     if (getSyntax() == AttributeCommonInfo::AS_Declspec && ComputedScope == AttributeCommonInfo::Scope::NONE)
0945       return 3;
0946     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::NONE)
0947       return 4;
0948     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::NONE)
0949       return 5;
0950     break;
0951   }
0952   case AT_Destructor: {
0953     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0954       return 0;
0955     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0956       return 1;
0957     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
0958       return 2;
0959     break;
0960   }
0961   case AT_DiagnoseAsBuiltin: {
0962     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0963       return 0;
0964     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0965       return 1;
0966     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0967       return 2;
0968     break;
0969   }
0970   case AT_DiagnoseIf: {
0971     return 0;
0972     break;
0973   }
0974   case AT_DisableSanitizerInstrumentation: {
0975     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0976       return 0;
0977     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0978       return 1;
0979     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0980       return 2;
0981     break;
0982   }
0983   case AT_DisableTailCalls: {
0984     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
0985       return 0;
0986     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0987       return 1;
0988     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
0989       return 2;
0990     break;
0991   }
0992   case AT_EmptyBases: {
0993     return 0;
0994     break;
0995   }
0996   case AT_EnableIf: {
0997     return 0;
0998     break;
0999   }
1000   case AT_EnforceTCB: {
1001     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1002       return 0;
1003     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1004       return 1;
1005     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1006       return 2;
1007     break;
1008   }
1009   case AT_EnforceTCBLeaf: {
1010     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1011       return 0;
1012     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1013       return 1;
1014     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1015       return 2;
1016     break;
1017   }
1018   case AT_EnumExtensibility: {
1019     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1020       return 0;
1021     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1022       return 1;
1023     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1024       return 2;
1025     break;
1026   }
1027   case AT_Error: {
1028     if (Name.size() == 5 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1029       return 0;
1030     if (Name.size() == 5 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1031       return 1;
1032     if (Name.size() == 5 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1033       return 2;
1034     if (Name.size() == 7 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1035       return 3;
1036     if (Name.size() == 7 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1037       return 4;
1038     if (Name.size() == 7 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1039       return 5;
1040     break;
1041   }
1042   case AT_ExcludeFromExplicitInstantiation: {
1043     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1044       return 0;
1045     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1046       return 1;
1047     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1048       return 2;
1049     break;
1050   }
1051   case AT_ExclusiveTrylockFunction: {
1052     return 0;
1053     break;
1054   }
1055   case AT_ExplicitInit: {
1056     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1057       return 0;
1058     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1059       return 1;
1060     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1061       return 2;
1062     break;
1063   }
1064   case AT_ExtVectorType: {
1065     return 0;
1066     break;
1067   }
1068   case AT_ExternalSourceSymbol: {
1069     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1070       return 0;
1071     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1072       return 1;
1073     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1074       return 2;
1075     break;
1076   }
1077   case AT_FallThrough: {
1078     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::NONE)
1079       return 0;
1080     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::NONE)
1081       return 1;
1082     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1083       return 2;
1084     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1085       return 3;
1086     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1087       return 4;
1088     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1089       return 5;
1090     break;
1091   }
1092   case AT_FastCall: {
1093     if (Name.size() == 8 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1094       return 0;
1095     if (Name.size() == 8 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1096       return 1;
1097     if (Name.size() == 8 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1098       return 2;
1099     if (Name.size() == 10 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
1100       return 3;
1101     if (Name.size() == 9 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
1102       return 4;
1103     break;
1104   }
1105   case AT_FlagEnum: {
1106     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1107       return 0;
1108     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1109       return 1;
1110     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1111       return 2;
1112     break;
1113   }
1114   case AT_Flatten: {
1115     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1116       return 0;
1117     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1118       return 1;
1119     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1120       return 2;
1121     break;
1122   }
1123   case AT_Format: {
1124     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1125       return 0;
1126     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1127       return 1;
1128     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1129       return 2;
1130     break;
1131   }
1132   case AT_FormatArg: {
1133     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1134       return 0;
1135     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1136       return 1;
1137     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1138       return 2;
1139     break;
1140   }
1141   case AT_FunctionReturnThunks: {
1142     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1143       return 0;
1144     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1145       return 1;
1146     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1147       return 2;
1148     break;
1149   }
1150   case AT_GNUInline: {
1151     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1152       return 0;
1153     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1154       return 1;
1155     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1156       return 2;
1157     break;
1158   }
1159   case AT_GuardedBy: {
1160     return 0;
1161     break;
1162   }
1163   case AT_GuardedVar: {
1164     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1165       return 0;
1166     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1167       return 1;
1168     break;
1169   }
1170   case AT_HIPManaged: {
1171     if (Name.size() == 7 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1172       return 0;
1173     if (Name.size() == 11 && getSyntax() == AttributeCommonInfo::AS_Declspec && ComputedScope == AttributeCommonInfo::Scope::NONE)
1174       return 1;
1175     break;
1176   }
1177   case AT_HLSLContainedType: {
1178     return 0;
1179     break;
1180   }
1181   case AT_HLSLControlFlowHint: {
1182     if (Name.size() == 6 && getSyntax() == AttributeCommonInfo::AS_Microsoft && ComputedScope == AttributeCommonInfo::Scope::NONE)
1183       return 0;
1184     if (Name.size() == 7 && getSyntax() == AttributeCommonInfo::AS_Microsoft && ComputedScope == AttributeCommonInfo::Scope::NONE)
1185       return 1;
1186     break;
1187   }
1188   case AT_HLSLGroupSharedAddressSpace: {
1189     return 0;
1190     break;
1191   }
1192   case AT_HLSLLoopHint: {
1193     if (Name.size() == 6 && getSyntax() == AttributeCommonInfo::AS_Microsoft && ComputedScope == AttributeCommonInfo::Scope::NONE)
1194       return 0;
1195     if (Name.size() == 4 && getSyntax() == AttributeCommonInfo::AS_Microsoft && ComputedScope == AttributeCommonInfo::Scope::NONE)
1196       return 1;
1197     break;
1198   }
1199   case AT_HLSLNumThreads: {
1200     return 0;
1201     break;
1202   }
1203   case AT_HLSLPackOffset: {
1204     return 0;
1205     break;
1206   }
1207   case AT_HLSLParamModifier: {
1208     if (Name.size() == 2 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
1209       return 0;
1210     if (Name.size() == 5 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
1211       return 1;
1212     if (Name.size() == 3 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
1213       return 2;
1214     break;
1215   }
1216   case AT_HLSLROV: {
1217     return 0;
1218     break;
1219   }
1220   case AT_HLSLRawBuffer: {
1221     return 0;
1222     break;
1223   }
1224   case AT_HLSLResource: {
1225     return 0;
1226     break;
1227   }
1228   case AT_HLSLResourceBinding: {
1229     return 0;
1230     break;
1231   }
1232   case AT_HLSLResourceClass: {
1233     return 0;
1234     break;
1235   }
1236   case AT_HLSLSV_DispatchThreadID: {
1237     return 0;
1238     break;
1239   }
1240   case AT_HLSLSV_GroupID: {
1241     return 0;
1242     break;
1243   }
1244   case AT_HLSLSV_GroupIndex: {
1245     return 0;
1246     break;
1247   }
1248   case AT_HLSLSV_GroupThreadID: {
1249     return 0;
1250     break;
1251   }
1252   case AT_HLSLShader: {
1253     return 0;
1254     break;
1255   }
1256   case AT_HLSLWaveSize: {
1257     return 0;
1258     break;
1259   }
1260   case AT_Hot: {
1261     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1262       return 0;
1263     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1264       return 1;
1265     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1266       return 2;
1267     break;
1268   }
1269   case AT_HybridPatchable: {
1270     if (getSyntax() == AttributeCommonInfo::AS_Declspec && ComputedScope == AttributeCommonInfo::Scope::NONE)
1271       return 0;
1272     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1273       return 1;
1274     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1275       return 2;
1276     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1277       return 3;
1278     break;
1279   }
1280   case AT_IBAction: {
1281     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1282       return 0;
1283     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1284       return 1;
1285     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1286       return 2;
1287     break;
1288   }
1289   case AT_IBOutlet: {
1290     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1291       return 0;
1292     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1293       return 1;
1294     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1295       return 2;
1296     break;
1297   }
1298   case AT_IBOutletCollection: {
1299     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1300       return 0;
1301     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1302       return 1;
1303     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1304       return 2;
1305     break;
1306   }
1307   case AT_IFunc: {
1308     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1309       return 0;
1310     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1311       return 1;
1312     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1313       return 2;
1314     break;
1315   }
1316   case AT_InitPriority: {
1317     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1318       return 0;
1319     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1320       return 1;
1321     break;
1322   }
1323   case AT_IntelOclBicc: {
1324     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1325       return 0;
1326     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1327       return 1;
1328     break;
1329   }
1330   case AT_InternalLinkage: {
1331     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1332       return 0;
1333     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1334       return 1;
1335     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1336       return 2;
1337     break;
1338   }
1339   case AT_LTOVisibilityPublic: {
1340     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1341       return 0;
1342     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1343       return 1;
1344     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1345       return 2;
1346     break;
1347   }
1348   case AT_LayoutVersion: {
1349     return 0;
1350     break;
1351   }
1352   case AT_Leaf: {
1353     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1354       return 0;
1355     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1356       return 1;
1357     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1358       return 2;
1359     break;
1360   }
1361   case AT_LifetimeBound: {
1362     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1363       return 0;
1364     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1365       return 1;
1366     break;
1367   }
1368   case AT_LifetimeCaptureBy: {
1369     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1370       return 0;
1371     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1372       return 1;
1373     break;
1374   }
1375   case AT_Likely: {
1376     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::NONE)
1377       return 0;
1378     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1379       return 1;
1380     break;
1381   }
1382   case AT_LoaderUninitialized: {
1383     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1384       return 0;
1385     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1386       return 1;
1387     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1388       return 2;
1389     break;
1390   }
1391   case AT_LockReturned: {
1392     return 0;
1393     break;
1394   }
1395   case AT_Lockable: {
1396     return 0;
1397     break;
1398   }
1399   case AT_LocksExcluded: {
1400     return 0;
1401     break;
1402   }
1403   case AT_LoopHint: {
1404     if (Name.size() == 4 && getSyntax() == AttributeCommonInfo::AS_Pragma && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1405       return 0;
1406     if (Name.size() == 6 && getSyntax() == AttributeCommonInfo::AS_Pragma && ComputedScope == AttributeCommonInfo::Scope::NONE)
1407       return 1;
1408     if (Name.size() == 8 && getSyntax() == AttributeCommonInfo::AS_Pragma && ComputedScope == AttributeCommonInfo::Scope::NONE)
1409       return 2;
1410     if (Name.size() == 14 && getSyntax() == AttributeCommonInfo::AS_Pragma && ComputedScope == AttributeCommonInfo::Scope::NONE)
1411       return 3;
1412     if (Name.size() == 16 && getSyntax() == AttributeCommonInfo::AS_Pragma && ComputedScope == AttributeCommonInfo::Scope::NONE)
1413       return 4;
1414     break;
1415   }
1416   case AT_M68kRTD: {
1417     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1418       return 0;
1419     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1420       return 1;
1421     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1422       return 2;
1423     break;
1424   }
1425   case AT_MIGServerRoutine: {
1426     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1427       return 0;
1428     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1429       return 1;
1430     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1431       return 2;
1432     break;
1433   }
1434   case AT_MSABI: {
1435     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1436       return 0;
1437     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1438       return 1;
1439     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1440       return 2;
1441     break;
1442   }
1443   case AT_MSAllocator: {
1444     return 0;
1445     break;
1446   }
1447   case AT_MSConstexpr: {
1448     return 0;
1449     break;
1450   }
1451   case AT_MSInheritance: {
1452     if (Name.size() == 20 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
1453       return 0;
1454     if (Name.size() == 22 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
1455       return 1;
1456     if (Name.size() == 21 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
1457       return 2;
1458     if (Name.size() == 25 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
1459       return 3;
1460     break;
1461   }
1462   case AT_MSNoVTable: {
1463     return 0;
1464     break;
1465   }
1466   case AT_MSStruct: {
1467     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1468       return 0;
1469     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1470       return 1;
1471     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1472       return 2;
1473     break;
1474   }
1475   case AT_MatrixType: {
1476     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1477       return 0;
1478     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1479       return 1;
1480     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1481       return 2;
1482     break;
1483   }
1484   case AT_MayAlias: {
1485     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1486       return 0;
1487     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1488       return 1;
1489     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1490       return 2;
1491     break;
1492   }
1493   case AT_MaybeUndef: {
1494     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1495       return 0;
1496     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1497       return 1;
1498     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1499       return 2;
1500     break;
1501   }
1502   case AT_MicroMips: {
1503     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1504       return 0;
1505     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1506       return 1;
1507     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1508       return 2;
1509     break;
1510   }
1511   case AT_MinSize: {
1512     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1513       return 0;
1514     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1515       return 1;
1516     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1517       return 2;
1518     break;
1519   }
1520   case AT_MinVectorWidth: {
1521     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1522       return 0;
1523     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1524       return 1;
1525     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1526       return 2;
1527     break;
1528   }
1529   case AT_Mips16: {
1530     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1531       return 0;
1532     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1533       return 1;
1534     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1535       return 2;
1536     break;
1537   }
1538   case AT_MipsLongCall: {
1539     if (Name.size() == 9 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1540       return 0;
1541     if (Name.size() == 9 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1542       return 1;
1543     if (Name.size() == 9 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1544       return 2;
1545     if (Name.size() == 3 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1546       return 3;
1547     if (Name.size() == 3 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1548       return 4;
1549     if (Name.size() == 3 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1550       return 5;
1551     break;
1552   }
1553   case AT_MipsShortCall: {
1554     if (Name.size() == 10 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1555       return 0;
1556     if (Name.size() == 10 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1557       return 1;
1558     if (Name.size() == 10 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1559       return 2;
1560     if (Name.size() == 4 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1561       return 3;
1562     if (Name.size() == 4 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1563       return 4;
1564     if (Name.size() == 4 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1565       return 5;
1566     break;
1567   }
1568   case AT_Mode: {
1569     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1570       return 0;
1571     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1572       return 1;
1573     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1574       return 2;
1575     break;
1576   }
1577   case AT_MustTail: {
1578     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1579       return 0;
1580     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1581       return 1;
1582     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1583       return 2;
1584     break;
1585   }
1586   case AT_NSConsumed: {
1587     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1588       return 0;
1589     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1590       return 1;
1591     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1592       return 2;
1593     break;
1594   }
1595   case AT_NSConsumesSelf: {
1596     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1597       return 0;
1598     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1599       return 1;
1600     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1601       return 2;
1602     break;
1603   }
1604   case AT_NSErrorDomain: {
1605     return 0;
1606     break;
1607   }
1608   case AT_NSReturnsAutoreleased: {
1609     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1610       return 0;
1611     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1612       return 1;
1613     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1614       return 2;
1615     break;
1616   }
1617   case AT_NSReturnsNotRetained: {
1618     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1619       return 0;
1620     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1621       return 1;
1622     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1623       return 2;
1624     break;
1625   }
1626   case AT_NSReturnsRetained: {
1627     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1628       return 0;
1629     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1630       return 1;
1631     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1632       return 2;
1633     break;
1634   }
1635   case AT_NVPTXKernel: {
1636     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1637       return 0;
1638     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1639       return 1;
1640     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1641       return 2;
1642     break;
1643   }
1644   case AT_Naked: {
1645     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1646       return 0;
1647     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1648       return 1;
1649     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1650       return 2;
1651     if (getSyntax() == AttributeCommonInfo::AS_Declspec && ComputedScope == AttributeCommonInfo::Scope::NONE)
1652       return 3;
1653     break;
1654   }
1655   case AT_NeonPolyVectorType: {
1656     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1657       return 0;
1658     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1659       return 1;
1660     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1661       return 2;
1662     break;
1663   }
1664   case AT_NeonVectorType: {
1665     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1666       return 0;
1667     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1668       return 1;
1669     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1670       return 2;
1671     break;
1672   }
1673   case AT_NoAlias: {
1674     return 0;
1675     break;
1676   }
1677   case AT_NoBuiltin: {
1678     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1679       return 0;
1680     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1681       return 1;
1682     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1683       return 2;
1684     break;
1685   }
1686   case AT_NoCommon: {
1687     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1688       return 0;
1689     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1690       return 1;
1691     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1692       return 2;
1693     break;
1694   }
1695   case AT_NoConvergent: {
1696     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1697       return 0;
1698     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1699       return 1;
1700     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1701       return 2;
1702     if (getSyntax() == AttributeCommonInfo::AS_Declspec && ComputedScope == AttributeCommonInfo::Scope::NONE)
1703       return 3;
1704     break;
1705   }
1706   case AT_NoDebug: {
1707     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1708       return 0;
1709     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1710       return 1;
1711     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1712       return 2;
1713     break;
1714   }
1715   case AT_NoDeref: {
1716     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1717       return 0;
1718     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1719       return 1;
1720     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1721       return 2;
1722     break;
1723   }
1724   case AT_NoDestroy: {
1725     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1726       return 0;
1727     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1728       return 1;
1729     break;
1730   }
1731   case AT_NoDuplicate: {
1732     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1733       return 0;
1734     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1735       return 1;
1736     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1737       return 2;
1738     break;
1739   }
1740   case AT_NoEscape: {
1741     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1742       return 0;
1743     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1744       return 1;
1745     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1746       return 2;
1747     break;
1748   }
1749   case AT_NoInline: {
1750     if (Name.size() == 12 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
1751       return 0;
1752     if (Name.size() == 8 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1753       return 1;
1754     if (Name.size() == 8 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1755       return 2;
1756     if (Name.size() == 8 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1757       return 3;
1758     if (Name.size() == 8 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1759       return 4;
1760     if (Name.size() == 8 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1761       return 5;
1762     if (Name.size() == 8 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::MSVC)
1763       return 6;
1764     if (Name.size() == 8 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::MSVC)
1765       return 7;
1766     if (Name.size() == 8 && getSyntax() == AttributeCommonInfo::AS_Declspec && ComputedScope == AttributeCommonInfo::Scope::NONE)
1767       return 8;
1768     break;
1769   }
1770   case AT_NoInstrumentFunction: {
1771     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1772       return 0;
1773     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1774       return 1;
1775     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1776       return 2;
1777     break;
1778   }
1779   case AT_NoMerge: {
1780     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1781       return 0;
1782     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1783       return 1;
1784     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1785       return 2;
1786     break;
1787   }
1788   case AT_NoMicroMips: {
1789     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1790       return 0;
1791     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1792       return 1;
1793     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1794       return 2;
1795     break;
1796   }
1797   case AT_NoMips16: {
1798     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1799       return 0;
1800     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1801       return 1;
1802     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1803       return 2;
1804     break;
1805   }
1806   case AT_NoProfileFunction: {
1807     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1808       return 0;
1809     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1810       return 1;
1811     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1812       return 2;
1813     break;
1814   }
1815   case AT_NoRandomizeLayout: {
1816     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1817       return 0;
1818     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1819       return 1;
1820     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1821       return 2;
1822     break;
1823   }
1824   case AT_NoReturn: {
1825     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1826       return 0;
1827     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1828       return 1;
1829     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1830       return 2;
1831     if (getSyntax() == AttributeCommonInfo::AS_Declspec && ComputedScope == AttributeCommonInfo::Scope::NONE)
1832       return 3;
1833     break;
1834   }
1835   case AT_NoSanitize: {
1836     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1837       return 0;
1838     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1839       return 1;
1840     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1841       return 2;
1842     break;
1843   }
1844   case AT_NoSanitizeSpecific: {
1845     if (Name.size() == 26 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1846       return 0;
1847     if (Name.size() == 26 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1848       return 1;
1849     if (Name.size() == 26 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1850       return 2;
1851     if (Name.size() == 19 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1852       return 3;
1853     if (Name.size() == 19 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1854       return 4;
1855     if (Name.size() == 19 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1856       return 5;
1857     if (Name == "no_sanitize_thread" && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1858       return 6;
1859     if (Name == "no_sanitize_thread" && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1860       return 7;
1861     if (Name == "no_sanitize_thread" && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1862       return 8;
1863     if (Name == "no_sanitize_memory" && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1864       return 9;
1865     if (Name == "no_sanitize_memory" && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1866       return 10;
1867     if (Name == "no_sanitize_memory" && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1868       return 11;
1869     break;
1870   }
1871   case AT_NoSpecializations: {
1872     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1873       return 0;
1874     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1875       return 1;
1876     break;
1877   }
1878   case AT_NoSpeculativeLoadHardening: {
1879     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1880       return 0;
1881     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1882       return 1;
1883     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1884       return 2;
1885     break;
1886   }
1887   case AT_NoSplitStack: {
1888     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1889       return 0;
1890     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1891       return 1;
1892     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1893       return 2;
1894     break;
1895   }
1896   case AT_NoStackProtector: {
1897     if (Name.size() == 18 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1898       return 0;
1899     if (Name.size() == 18 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1900       return 1;
1901     if (Name.size() == 18 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1902       return 2;
1903     if (Name.size() == 18 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1904       return 3;
1905     if (Name.size() == 18 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1906       return 4;
1907     if (Name.size() == 11 && getSyntax() == AttributeCommonInfo::AS_Declspec && ComputedScope == AttributeCommonInfo::Scope::NONE)
1908       return 5;
1909     break;
1910   }
1911   case AT_NoThreadSafetyAnalysis: {
1912     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1913       return 0;
1914     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1915       return 1;
1916     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1917       return 2;
1918     break;
1919   }
1920   case AT_NoThrow: {
1921     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1922       return 0;
1923     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1924       return 1;
1925     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1926       return 2;
1927     if (getSyntax() == AttributeCommonInfo::AS_Declspec && ComputedScope == AttributeCommonInfo::Scope::NONE)
1928       return 3;
1929     break;
1930   }
1931   case AT_NoTrivialAutoVarInit: {
1932     return 0;
1933     break;
1934   }
1935   case AT_NoUniqueAddress: {
1936     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::NONE)
1937       return 0;
1938     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::MSVC)
1939       return 1;
1940     break;
1941   }
1942   case AT_NoUwtable: {
1943     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1944       return 0;
1945     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1946       return 1;
1947     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1948       return 2;
1949     break;
1950   }
1951   case AT_NonAllocating: {
1952     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1953       return 0;
1954     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1955       return 1;
1956     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1957       return 2;
1958     break;
1959   }
1960   case AT_NonBlocking: {
1961     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1962       return 0;
1963     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1964       return 1;
1965     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1966       return 2;
1967     break;
1968   }
1969   case AT_NonNull: {
1970     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1971       return 0;
1972     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1973       return 1;
1974     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
1975       return 2;
1976     break;
1977   }
1978   case AT_NotTailCalled: {
1979     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1980       return 0;
1981     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1982       return 1;
1983     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1984       return 2;
1985     break;
1986   }
1987   case AT_OMPAssume: {
1988     return 0;
1989     break;
1990   }
1991   case AT_OSConsumed: {
1992     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
1993       return 0;
1994     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1995       return 1;
1996     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
1997       return 2;
1998     break;
1999   }
2000   case AT_OSConsumesThis: {
2001     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2002       return 0;
2003     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2004       return 1;
2005     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2006       return 2;
2007     break;
2008   }
2009   case AT_OSReturnsNotRetained: {
2010     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2011       return 0;
2012     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2013       return 1;
2014     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2015       return 2;
2016     break;
2017   }
2018   case AT_OSReturnsRetained: {
2019     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2020       return 0;
2021     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2022       return 1;
2023     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2024       return 2;
2025     break;
2026   }
2027   case AT_OSReturnsRetainedOnNonZero: {
2028     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2029       return 0;
2030     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2031       return 1;
2032     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2033       return 2;
2034     break;
2035   }
2036   case AT_OSReturnsRetainedOnZero: {
2037     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2038       return 0;
2039     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2040       return 1;
2041     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2042       return 2;
2043     break;
2044   }
2045   case AT_ObjCBoxable: {
2046     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2047       return 0;
2048     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2049       return 1;
2050     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2051       return 2;
2052     break;
2053   }
2054   case AT_ObjCBridge: {
2055     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2056       return 0;
2057     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2058       return 1;
2059     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2060       return 2;
2061     break;
2062   }
2063   case AT_ObjCBridgeMutable: {
2064     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2065       return 0;
2066     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2067       return 1;
2068     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2069       return 2;
2070     break;
2071   }
2072   case AT_ObjCBridgeRelated: {
2073     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2074       return 0;
2075     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2076       return 1;
2077     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2078       return 2;
2079     break;
2080   }
2081   case AT_ObjCClassStub: {
2082     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2083       return 0;
2084     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2085       return 1;
2086     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2087       return 2;
2088     break;
2089   }
2090   case AT_ObjCDesignatedInitializer: {
2091     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2092       return 0;
2093     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2094       return 1;
2095     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2096       return 2;
2097     break;
2098   }
2099   case AT_ObjCDirect: {
2100     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2101       return 0;
2102     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2103       return 1;
2104     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2105       return 2;
2106     break;
2107   }
2108   case AT_ObjCDirectMembers: {
2109     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2110       return 0;
2111     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2112       return 1;
2113     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2114       return 2;
2115     break;
2116   }
2117   case AT_ObjCException: {
2118     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2119       return 0;
2120     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2121       return 1;
2122     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2123       return 2;
2124     break;
2125   }
2126   case AT_ObjCExplicitProtocolImpl: {
2127     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2128       return 0;
2129     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2130       return 1;
2131     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2132       return 2;
2133     break;
2134   }
2135   case AT_ObjCExternallyRetained: {
2136     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2137       return 0;
2138     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2139       return 1;
2140     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2141       return 2;
2142     break;
2143   }
2144   case AT_ObjCGC: {
2145     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2146       return 0;
2147     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2148       return 1;
2149     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2150       return 2;
2151     break;
2152   }
2153   case AT_ObjCIndependentClass: {
2154     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2155       return 0;
2156     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2157       return 1;
2158     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2159       return 2;
2160     break;
2161   }
2162   case AT_ObjCInertUnsafeUnretained: {
2163     return 0;
2164     break;
2165   }
2166   case AT_ObjCKindOf: {
2167     return 0;
2168     break;
2169   }
2170   case AT_ObjCMethodFamily: {
2171     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2172       return 0;
2173     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2174       return 1;
2175     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2176       return 2;
2177     break;
2178   }
2179   case AT_ObjCNSObject: {
2180     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2181       return 0;
2182     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2183       return 1;
2184     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2185       return 2;
2186     break;
2187   }
2188   case AT_ObjCNonLazyClass: {
2189     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2190       return 0;
2191     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2192       return 1;
2193     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2194       return 2;
2195     break;
2196   }
2197   case AT_ObjCNonRuntimeProtocol: {
2198     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2199       return 0;
2200     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2201       return 1;
2202     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2203       return 2;
2204     break;
2205   }
2206   case AT_ObjCOwnership: {
2207     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2208       return 0;
2209     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2210       return 1;
2211     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2212       return 2;
2213     break;
2214   }
2215   case AT_ObjCPreciseLifetime: {
2216     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2217       return 0;
2218     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2219       return 1;
2220     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2221       return 2;
2222     break;
2223   }
2224   case AT_ObjCRequiresPropertyDefs: {
2225     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2226       return 0;
2227     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2228       return 1;
2229     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2230       return 2;
2231     break;
2232   }
2233   case AT_ObjCRequiresSuper: {
2234     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2235       return 0;
2236     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2237       return 1;
2238     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2239       return 2;
2240     break;
2241   }
2242   case AT_ObjCReturnsInnerPointer: {
2243     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2244       return 0;
2245     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2246       return 1;
2247     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2248       return 2;
2249     break;
2250   }
2251   case AT_ObjCRootClass: {
2252     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2253       return 0;
2254     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2255       return 1;
2256     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2257       return 2;
2258     break;
2259   }
2260   case AT_ObjCRuntimeName: {
2261     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2262       return 0;
2263     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2264       return 1;
2265     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2266       return 2;
2267     break;
2268   }
2269   case AT_ObjCRuntimeVisible: {
2270     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2271       return 0;
2272     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2273       return 1;
2274     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2275       return 2;
2276     break;
2277   }
2278   case AT_ObjCSubclassingRestricted: {
2279     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2280       return 0;
2281     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2282       return 1;
2283     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2284       return 2;
2285     break;
2286   }
2287   case AT_OpenCLAccess: {
2288     if (Name.size() == 11 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
2289       return 0;
2290     if (Name.size() == 9 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
2291       return 1;
2292     if (Name == "__write_only" && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
2293       return 2;
2294     if (Name == "write_only" && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
2295       return 3;
2296     if (Name == "__read_write" && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
2297       return 4;
2298     if (Name == "read_write" && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
2299       return 5;
2300     break;
2301   }
2302   case AT_OpenCLConstantAddressSpace: {
2303     if (Name.size() == 10 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
2304       return 0;
2305     if (Name.size() == 8 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
2306       return 1;
2307     if (Name.size() == 15 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2308       return 2;
2309     if (Name.size() == 15 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2310       return 3;
2311     if (Name.size() == 15 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2312       return 4;
2313     break;
2314   }
2315   case AT_OpenCLGenericAddressSpace: {
2316     if (Name.size() == 9 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
2317       return 0;
2318     if (Name.size() == 7 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
2319       return 1;
2320     if (Name.size() == 14 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2321       return 2;
2322     if (Name.size() == 14 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2323       return 3;
2324     if (Name.size() == 14 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2325       return 4;
2326     break;
2327   }
2328   case AT_OpenCLGlobalAddressSpace: {
2329     if (Name.size() == 8 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
2330       return 0;
2331     if (Name.size() == 6 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
2332       return 1;
2333     if (Name.size() == 13 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2334       return 2;
2335     if (Name.size() == 13 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2336       return 3;
2337     if (Name.size() == 13 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2338       return 4;
2339     break;
2340   }
2341   case AT_OpenCLGlobalDeviceAddressSpace: {
2342     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2343       return 0;
2344     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2345       return 1;
2346     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2347       return 2;
2348     break;
2349   }
2350   case AT_OpenCLGlobalHostAddressSpace: {
2351     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2352       return 0;
2353     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2354       return 1;
2355     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2356       return 2;
2357     break;
2358   }
2359   case AT_OpenCLIntelReqdSubGroupSize: {
2360     return 0;
2361     break;
2362   }
2363   case AT_OpenCLKernel: {
2364     if (Name.size() == 8 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
2365       return 0;
2366     if (Name.size() == 6 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
2367       return 1;
2368     break;
2369   }
2370   case AT_OpenCLLocalAddressSpace: {
2371     if (Name.size() == 7 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
2372       return 0;
2373     if (Name.size() == 5 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
2374       return 1;
2375     if (Name.size() == 12 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2376       return 2;
2377     if (Name.size() == 12 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2378       return 3;
2379     if (Name.size() == 12 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2380       return 4;
2381     break;
2382   }
2383   case AT_OpenCLNoSVM: {
2384     return 0;
2385     break;
2386   }
2387   case AT_OpenCLPrivateAddressSpace: {
2388     if (Name.size() == 9 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
2389       return 0;
2390     if (Name.size() == 7 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
2391       return 1;
2392     if (Name.size() == 14 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2393       return 2;
2394     if (Name.size() == 14 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2395       return 3;
2396     if (Name.size() == 14 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2397       return 4;
2398     break;
2399   }
2400   case AT_OpenCLUnrollHint: {
2401     return 0;
2402     break;
2403   }
2404   case AT_OptimizeNone: {
2405     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2406       return 0;
2407     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2408       return 1;
2409     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2410       return 2;
2411     break;
2412   }
2413   case AT_Overloadable: {
2414     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2415       return 0;
2416     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2417       return 1;
2418     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2419       return 2;
2420     break;
2421   }
2422   case AT_Owner: {
2423     return 0;
2424     break;
2425   }
2426   case AT_Ownership: {
2427     if (Name == "ownership_holds" && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2428       return 0;
2429     if (Name == "ownership_holds" && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2430       return 1;
2431     if (Name == "ownership_holds" && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2432       return 2;
2433     if (Name.size() == 17 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2434       return 3;
2435     if (Name.size() == 17 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2436       return 4;
2437     if (Name.size() == 17 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2438       return 5;
2439     if (Name == "ownership_takes" && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2440       return 6;
2441     if (Name == "ownership_takes" && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2442       return 7;
2443     if (Name == "ownership_takes" && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2444       return 8;
2445     break;
2446   }
2447   case AT_Packed: {
2448     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2449       return 0;
2450     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
2451       return 1;
2452     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
2453       return 2;
2454     break;
2455   }
2456   case AT_ParamTypestate: {
2457     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2458       return 0;
2459     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2460       return 1;
2461     break;
2462   }
2463   case AT_Pascal: {
2464     if (Name.size() == 6 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2465       return 0;
2466     if (Name.size() == 6 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2467       return 1;
2468     if (Name.size() == 6 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2469       return 2;
2470     if (Name.size() == 8 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
2471       return 3;
2472     if (Name.size() == 7 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
2473       return 4;
2474     break;
2475   }
2476   case AT_PassObjectSize: {
2477     if (Name.size() == 16 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2478       return 0;
2479     if (Name.size() == 16 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2480       return 1;
2481     if (Name.size() == 16 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2482       return 2;
2483     if (Name.size() == 24 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2484       return 3;
2485     if (Name.size() == 24 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2486       return 4;
2487     if (Name.size() == 24 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2488       return 5;
2489     break;
2490   }
2491   case AT_PatchableFunctionEntry: {
2492     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2493       return 0;
2494     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
2495       return 1;
2496     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
2497       return 2;
2498     break;
2499   }
2500   case AT_Pcs: {
2501     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2502       return 0;
2503     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
2504       return 1;
2505     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
2506       return 2;
2507     break;
2508   }
2509   case AT_Pointer: {
2510     return 0;
2511     break;
2512   }
2513   case AT_PragmaClangBSSSection: {
2514     return 0;
2515     break;
2516   }
2517   case AT_PragmaClangDataSection: {
2518     return 0;
2519     break;
2520   }
2521   case AT_PragmaClangRelroSection: {
2522     return 0;
2523     break;
2524   }
2525   case AT_PragmaClangRodataSection: {
2526     return 0;
2527     break;
2528   }
2529   case AT_PragmaClangTextSection: {
2530     return 0;
2531     break;
2532   }
2533   case AT_PreferredName: {
2534     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2535       return 0;
2536     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2537       return 1;
2538     break;
2539   }
2540   case AT_PreferredType: {
2541     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2542       return 0;
2543     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2544       return 1;
2545     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2546       return 2;
2547     break;
2548   }
2549   case AT_PreserveAll: {
2550     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2551       return 0;
2552     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2553       return 1;
2554     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2555       return 2;
2556     break;
2557   }
2558   case AT_PreserveMost: {
2559     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2560       return 0;
2561     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2562       return 1;
2563     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2564       return 2;
2565     break;
2566   }
2567   case AT_PreserveNone: {
2568     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2569       return 0;
2570     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2571       return 1;
2572     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2573       return 2;
2574     break;
2575   }
2576   case AT_PtGuardedBy: {
2577     return 0;
2578     break;
2579   }
2580   case AT_PtGuardedVar: {
2581     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2582       return 0;
2583     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2584       return 1;
2585     break;
2586   }
2587   case AT_Ptr32: {
2588     return 0;
2589     break;
2590   }
2591   case AT_Ptr64: {
2592     return 0;
2593     break;
2594   }
2595   case AT_Pure: {
2596     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2597       return 0;
2598     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
2599       return 1;
2600     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
2601       return 2;
2602     break;
2603   }
2604   case AT_RISCVRVVVectorBits: {
2605     return 0;
2606     break;
2607   }
2608   case AT_RISCVVectorCC: {
2609     if (Name.size() == 9 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::RISCV)
2610       return 0;
2611     if (Name.size() == 9 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::RISCV)
2612       return 1;
2613     if (Name.size() == 15 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2614       return 2;
2615     if (Name.size() == 15 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2616       return 3;
2617     if (Name.size() == 15 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2618       return 4;
2619     break;
2620   }
2621   case AT_RandomizeLayout: {
2622     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2623       return 0;
2624     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
2625       return 1;
2626     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
2627       return 2;
2628     break;
2629   }
2630   case AT_ReadOnlyPlacement: {
2631     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2632       return 0;
2633     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2634       return 1;
2635     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2636       return 2;
2637     break;
2638   }
2639   case AT_RegCall: {
2640     if (Name.size() == 7 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2641       return 0;
2642     if (Name.size() == 7 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
2643       return 1;
2644     if (Name.size() == 7 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
2645       return 2;
2646     if (Name.size() == 9 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
2647       return 3;
2648     break;
2649   }
2650   case AT_Regparm: {
2651     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2652       return 0;
2653     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
2654       return 1;
2655     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
2656       return 2;
2657     break;
2658   }
2659   case AT_Reinitializes: {
2660     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2661       return 0;
2662     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2663       return 1;
2664     break;
2665   }
2666   case AT_ReleaseCapability: {
2667     if (Name.size() == 18 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2668       return 0;
2669     if (Name.size() == 18 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2670       return 1;
2671     if (Name.size() == 25 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2672       return 2;
2673     if (Name.size() == 25 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2674       return 3;
2675     if (Name.size() == 26 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2676       return 4;
2677     if (Name.size() == 26 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2678       return 5;
2679     if (Name.size() == 15 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2680       return 6;
2681     if (Name.size() == 15 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2682       return 7;
2683     break;
2684   }
2685   case AT_ReleaseHandle: {
2686     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2687       return 0;
2688     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2689       return 1;
2690     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2691       return 2;
2692     break;
2693   }
2694   case AT_ReqdWorkGroupSize: {
2695     return 0;
2696     break;
2697   }
2698   case AT_RequiresCapability: {
2699     if (Name.size() == 19 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2700       return 0;
2701     if (Name.size() == 19 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2702       return 1;
2703     if (Name.size() == 24 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2704       return 2;
2705     if (Name.size() == 24 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2706       return 3;
2707     if (Name.size() == 26 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2708       return 4;
2709     if (Name.size() == 26 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2710       return 5;
2711     if (Name.size() == 21 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2712       return 6;
2713     if (Name.size() == 21 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2714       return 7;
2715     break;
2716   }
2717   case AT_Restrict: {
2718     if (Name.size() == 8 && getSyntax() == AttributeCommonInfo::AS_Declspec && ComputedScope == AttributeCommonInfo::Scope::NONE)
2719       return 0;
2720     if (Name.size() == 6 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2721       return 1;
2722     if (Name.size() == 6 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
2723       return 2;
2724     if (Name.size() == 6 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
2725       return 3;
2726     break;
2727   }
2728   case AT_Retain: {
2729     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2730       return 0;
2731     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
2732       return 1;
2733     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
2734       return 2;
2735     break;
2736   }
2737   case AT_ReturnTypestate: {
2738     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2739       return 0;
2740     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2741       return 1;
2742     break;
2743   }
2744   case AT_ReturnsNonNull: {
2745     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2746       return 0;
2747     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
2748       return 1;
2749     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
2750       return 2;
2751     break;
2752   }
2753   case AT_ReturnsTwice: {
2754     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2755       return 0;
2756     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
2757       return 1;
2758     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
2759       return 2;
2760     break;
2761   }
2762   case AT_SPtr: {
2763     return 0;
2764     break;
2765   }
2766   case AT_SYCLKernel: {
2767     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2768       return 0;
2769     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2770       return 1;
2771     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2772       return 2;
2773     break;
2774   }
2775   case AT_SYCLKernelEntryPoint: {
2776     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2777       return 0;
2778     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2779       return 1;
2780     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2781       return 2;
2782     break;
2783   }
2784   case AT_SYCLSpecialClass: {
2785     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2786       return 0;
2787     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2788       return 1;
2789     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2790       return 2;
2791     break;
2792   }
2793   case AT_ScopedLockable: {
2794     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2795       return 0;
2796     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2797       return 1;
2798     break;
2799   }
2800   case AT_Section: {
2801     if (Name.size() == 7 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2802       return 0;
2803     if (Name.size() == 7 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
2804       return 1;
2805     if (Name.size() == 7 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
2806       return 2;
2807     if (Name.size() == 8 && getSyntax() == AttributeCommonInfo::AS_Declspec && ComputedScope == AttributeCommonInfo::Scope::NONE)
2808       return 3;
2809     break;
2810   }
2811   case AT_SelectAny: {
2812     if (getSyntax() == AttributeCommonInfo::AS_Declspec && ComputedScope == AttributeCommonInfo::Scope::NONE)
2813       return 0;
2814     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2815       return 1;
2816     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
2817       return 2;
2818     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
2819       return 3;
2820     break;
2821   }
2822   case AT_Sentinel: {
2823     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2824       return 0;
2825     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
2826       return 1;
2827     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
2828       return 2;
2829     break;
2830   }
2831   case AT_SetTypestate: {
2832     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2833       return 0;
2834     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2835       return 1;
2836     break;
2837   }
2838   case AT_SharedTrylockFunction: {
2839     return 0;
2840     break;
2841   }
2842   case AT_SizedBy: {
2843     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2844       return 0;
2845     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2846       return 1;
2847     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2848       return 2;
2849     break;
2850   }
2851   case AT_SizedByOrNull: {
2852     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2853       return 0;
2854     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2855       return 1;
2856     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2857       return 2;
2858     break;
2859   }
2860   case AT_SpeculativeLoadHardening: {
2861     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2862       return 0;
2863     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2864       return 1;
2865     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2866       return 2;
2867     break;
2868   }
2869   case AT_StandaloneDebug: {
2870     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2871       return 0;
2872     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2873       return 1;
2874     break;
2875   }
2876   case AT_StdCall: {
2877     if (Name.size() == 7 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2878       return 0;
2879     if (Name.size() == 7 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
2880       return 1;
2881     if (Name.size() == 7 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
2882       return 2;
2883     if (Name.size() == 9 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
2884       return 3;
2885     if (Name.size() == 8 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
2886       return 4;
2887     break;
2888   }
2889   case AT_StrictFP: {
2890     return 0;
2891     break;
2892   }
2893   case AT_StrictGuardStackCheck: {
2894     return 0;
2895     break;
2896   }
2897   case AT_Suppress: {
2898     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GSL)
2899       return 0;
2900     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2901       return 1;
2902     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2903       return 2;
2904     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2905       return 3;
2906     break;
2907   }
2908   case AT_SwiftAsync: {
2909     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2910       return 0;
2911     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2912       return 1;
2913     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2914       return 2;
2915     break;
2916   }
2917   case AT_SwiftAsyncCall: {
2918     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2919       return 0;
2920     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2921       return 1;
2922     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2923       return 2;
2924     break;
2925   }
2926   case AT_SwiftAsyncContext: {
2927     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2928       return 0;
2929     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2930       return 1;
2931     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2932       return 2;
2933     break;
2934   }
2935   case AT_SwiftAsyncError: {
2936     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2937       return 0;
2938     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2939       return 1;
2940     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2941       return 2;
2942     break;
2943   }
2944   case AT_SwiftAsyncName: {
2945     return 0;
2946     break;
2947   }
2948   case AT_SwiftAttr: {
2949     return 0;
2950     break;
2951   }
2952   case AT_SwiftBridge: {
2953     return 0;
2954     break;
2955   }
2956   case AT_SwiftBridgedTypedef: {
2957     return 0;
2958     break;
2959   }
2960   case AT_SwiftCall: {
2961     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2962       return 0;
2963     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2964       return 1;
2965     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2966       return 2;
2967     break;
2968   }
2969   case AT_SwiftContext: {
2970     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2971       return 0;
2972     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2973       return 1;
2974     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2975       return 2;
2976     break;
2977   }
2978   case AT_SwiftError: {
2979     return 0;
2980     break;
2981   }
2982   case AT_SwiftErrorResult: {
2983     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2984       return 0;
2985     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2986       return 1;
2987     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2988       return 2;
2989     break;
2990   }
2991   case AT_SwiftIndirectResult: {
2992     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
2993       return 0;
2994     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2995       return 1;
2996     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
2997       return 2;
2998     break;
2999   }
3000   case AT_SwiftName: {
3001     return 0;
3002     break;
3003   }
3004   case AT_SwiftNewType: {
3005     if (Name == "swift_newtype" && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3006       return 0;
3007     if (Name == "swift_wrapper" && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3008       return 1;
3009     break;
3010   }
3011   case AT_SwiftObjCMembers: {
3012     return 0;
3013     break;
3014   }
3015   case AT_SwiftPrivate: {
3016     return 0;
3017     break;
3018   }
3019   case AT_SysVABI: {
3020     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3021       return 0;
3022     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3023       return 1;
3024     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3025       return 2;
3026     break;
3027   }
3028   case AT_TLSModel: {
3029     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3030       return 0;
3031     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3032       return 1;
3033     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3034       return 2;
3035     break;
3036   }
3037   case AT_Target: {
3038     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3039       return 0;
3040     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3041       return 1;
3042     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3043       return 2;
3044     break;
3045   }
3046   case AT_TargetClones: {
3047     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3048       return 0;
3049     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3050       return 1;
3051     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3052       return 2;
3053     break;
3054   }
3055   case AT_TargetVersion: {
3056     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3057       return 0;
3058     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3059       return 1;
3060     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3061       return 2;
3062     break;
3063   }
3064   case AT_TestTypestate: {
3065     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3066       return 0;
3067     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3068       return 1;
3069     break;
3070   }
3071   case AT_ThisCall: {
3072     if (Name.size() == 8 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3073       return 0;
3074     if (Name.size() == 8 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3075       return 1;
3076     if (Name.size() == 8 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3077       return 2;
3078     if (Name.size() == 10 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
3079       return 3;
3080     if (Name.size() == 9 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
3081       return 4;
3082     break;
3083   }
3084   case AT_Thread: {
3085     return 0;
3086     break;
3087   }
3088   case AT_TransparentUnion: {
3089     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3090       return 0;
3091     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3092       return 1;
3093     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3094       return 2;
3095     break;
3096   }
3097   case AT_TrivialABI: {
3098     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3099       return 0;
3100     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3101       return 1;
3102     break;
3103   }
3104   case AT_TryAcquireCapability: {
3105     if (Name.size() == 22 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3106       return 0;
3107     if (Name.size() == 22 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3108       return 1;
3109     if (Name.size() == 29 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3110       return 2;
3111     if (Name.size() == 29 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3112       return 3;
3113     break;
3114   }
3115   case AT_TypeNonNull: {
3116     return 0;
3117     break;
3118   }
3119   case AT_TypeNullUnspecified: {
3120     return 0;
3121     break;
3122   }
3123   case AT_TypeNullable: {
3124     return 0;
3125     break;
3126   }
3127   case AT_TypeNullableResult: {
3128     return 0;
3129     break;
3130   }
3131   case AT_TypeTagForDatatype: {
3132     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3133       return 0;
3134     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3135       return 1;
3136     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3137       return 2;
3138     break;
3139   }
3140   case AT_TypeVisibility: {
3141     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3142       return 0;
3143     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3144       return 1;
3145     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3146       return 2;
3147     break;
3148   }
3149   case AT_UPtr: {
3150     return 0;
3151     break;
3152   }
3153   case AT_Unavailable: {
3154     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3155       return 0;
3156     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3157       return 1;
3158     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3159       return 2;
3160     break;
3161   }
3162   case AT_Uninitialized: {
3163     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3164       return 0;
3165     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3166       return 1;
3167     break;
3168   }
3169   case AT_Unlikely: {
3170     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::NONE)
3171       return 0;
3172     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3173       return 1;
3174     break;
3175   }
3176   case AT_UnsafeBufferUsage: {
3177     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3178       return 0;
3179     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3180       return 1;
3181     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3182       return 2;
3183     break;
3184   }
3185   case AT_Unused: {
3186     if (Name.size() == 12 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::NONE)
3187       return 0;
3188     if (Name.size() == 6 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3189       return 1;
3190     if (Name.size() == 6 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3191       return 2;
3192     if (Name.size() == 6 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3193       return 3;
3194     if (Name.size() == 12 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::NONE)
3195       return 4;
3196     break;
3197   }
3198   case AT_UseHandle: {
3199     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3200       return 0;
3201     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3202       return 1;
3203     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3204       return 2;
3205     break;
3206   }
3207   case AT_Used: {
3208     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3209       return 0;
3210     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3211       return 1;
3212     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3213       return 2;
3214     break;
3215   }
3216   case AT_UsingIfExists: {
3217     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3218       return 0;
3219     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3220       return 1;
3221     break;
3222   }
3223   case AT_Uuid: {
3224     if (getSyntax() == AttributeCommonInfo::AS_Declspec && ComputedScope == AttributeCommonInfo::Scope::NONE)
3225       return 0;
3226     if (getSyntax() == AttributeCommonInfo::AS_Microsoft && ComputedScope == AttributeCommonInfo::Scope::NONE)
3227       return 1;
3228     break;
3229   }
3230   case AT_VTablePointerAuthentication: {
3231     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3232       return 0;
3233     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3234       return 1;
3235     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3236       return 2;
3237     break;
3238   }
3239   case AT_VecReturn: {
3240     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3241       return 0;
3242     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3243       return 1;
3244     break;
3245   }
3246   case AT_VecTypeHint: {
3247     return 0;
3248     break;
3249   }
3250   case AT_VectorCall: {
3251     if (Name.size() == 10 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3252       return 0;
3253     if (Name.size() == 10 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3254       return 1;
3255     if (Name.size() == 10 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3256       return 2;
3257     if (Name.size() == 12 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
3258       return 3;
3259     if (Name.size() == 11 && getSyntax() == AttributeCommonInfo::AS_Keyword && ComputedScope == AttributeCommonInfo::Scope::NONE)
3260       return 4;
3261     break;
3262   }
3263   case AT_VectorSize: {
3264     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3265       return 0;
3266     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3267       return 1;
3268     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3269       return 2;
3270     break;
3271   }
3272   case AT_Visibility: {
3273     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3274       return 0;
3275     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3276       return 1;
3277     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3278       return 2;
3279     break;
3280   }
3281   case AT_WarnUnused: {
3282     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3283       return 0;
3284     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3285       return 1;
3286     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3287       return 2;
3288     break;
3289   }
3290   case AT_WarnUnusedResult: {
3291     if (Name.size() == 9 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::NONE)
3292       return 0;
3293     if (Name.size() == 9 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::NONE)
3294       return 1;
3295     if (Name.size() == 18 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3296       return 2;
3297     if (Name.size() == 18 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3298       return 3;
3299     if (Name.size() == 18 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3300       return 4;
3301     if (Name.size() == 18 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3302       return 5;
3303     break;
3304   }
3305   case AT_Weak: {
3306     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3307       return 0;
3308     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3309       return 1;
3310     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3311       return 2;
3312     break;
3313   }
3314   case AT_WeakImport: {
3315     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3316       return 0;
3317     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3318       return 1;
3319     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3320       return 2;
3321     break;
3322   }
3323   case AT_WeakRef: {
3324     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3325       return 0;
3326     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3327       return 1;
3328     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3329       return 2;
3330     break;
3331   }
3332   case AT_WebAssemblyExportName: {
3333     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3334       return 0;
3335     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3336       return 1;
3337     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3338       return 2;
3339     break;
3340   }
3341   case AT_WebAssemblyFuncref: {
3342     return 0;
3343     break;
3344   }
3345   case AT_WebAssemblyImportModule: {
3346     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3347       return 0;
3348     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3349       return 1;
3350     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3351       return 2;
3352     break;
3353   }
3354   case AT_WebAssemblyImportName: {
3355     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3356       return 0;
3357     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3358       return 1;
3359     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3360       return 2;
3361     break;
3362   }
3363   case AT_WorkGroupSizeHint: {
3364     return 0;
3365     break;
3366   }
3367   case AT_X86ForceAlignArgPointer: {
3368     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3369       return 0;
3370     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3371       return 1;
3372     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3373       return 2;
3374     break;
3375   }
3376   case AT_XRayInstrument: {
3377     if (Name.size() == 22 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3378       return 0;
3379     if (Name.size() == 22 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3380       return 1;
3381     if (Name.size() == 22 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3382       return 2;
3383     if (Name.size() == 21 && getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3384       return 3;
3385     if (Name.size() == 21 && getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3386       return 4;
3387     if (Name.size() == 21 && getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3388       return 5;
3389     break;
3390   }
3391   case AT_XRayLogArgs: {
3392     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3393       return 0;
3394     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3395       return 1;
3396     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::CLANG)
3397       return 2;
3398     break;
3399   }
3400   case AT_ZeroCallUsedRegs: {
3401     if (getSyntax() == AttributeCommonInfo::AS_GNU && ComputedScope == AttributeCommonInfo::Scope::NONE)
3402       return 0;
3403     if (getSyntax() == AttributeCommonInfo::AS_CXX11 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3404       return 1;
3405     if (getSyntax() == AttributeCommonInfo::AS_C23 && ComputedScope == AttributeCommonInfo::Scope::GNU)
3406       return 2;
3407     break;
3408   }
3409   }
3410   return 0;