LCOV - code coverage report
Current view: top level - clang/AST - AttrVisitor.inc (source / functions) Hit Total Coverage
Test: clang.info Lines: 0 1483 0.0 %
Date: 2016-01-31 12:01:00 Functions: 0 347 0.0 %

          Line data    Source code
       1             : /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
       2             : |*                                                                            *|
       3             : |* Used by RecursiveASTVisitor to visit attributes.                           *|
       4             : |*                                                                            *|
       5             : |* Automatically generated file, do not edit!                                 *|
       6             : |*                                                                            *|
       7             : \*===----------------------------------------------------------------------===*/
       8             : 
       9             : #ifdef ATTR_VISITOR_DECLS_ONLY
      10             : 
      11             :   bool TraverseAMDGPUNumSGPRAttr(AMDGPUNumSGPRAttr *A);
      12             :   bool VisitAMDGPUNumSGPRAttr(AMDGPUNumSGPRAttr *A) {
      13           0 :     return true; 
      14             :   };
      15             :   bool TraverseAMDGPUNumVGPRAttr(AMDGPUNumVGPRAttr *A);
      16             :   bool VisitAMDGPUNumVGPRAttr(AMDGPUNumVGPRAttr *A) {
      17           0 :     return true; 
      18             :   };
      19             :   bool TraverseARMInterruptAttr(ARMInterruptAttr *A);
      20             :   bool VisitARMInterruptAttr(ARMInterruptAttr *A) {
      21           0 :     return true; 
      22             :   };
      23             :   bool TraverseAcquireCapabilityAttr(AcquireCapabilityAttr *A);
      24             :   bool VisitAcquireCapabilityAttr(AcquireCapabilityAttr *A) {
      25           0 :     return true; 
      26             :   };
      27             :   bool TraverseAcquiredAfterAttr(AcquiredAfterAttr *A);
      28             :   bool VisitAcquiredAfterAttr(AcquiredAfterAttr *A) {
      29           0 :     return true; 
      30             :   };
      31             :   bool TraverseAcquiredBeforeAttr(AcquiredBeforeAttr *A);
      32             :   bool VisitAcquiredBeforeAttr(AcquiredBeforeAttr *A) {
      33           0 :     return true; 
      34             :   };
      35             :   bool TraverseAliasAttr(AliasAttr *A);
      36             :   bool VisitAliasAttr(AliasAttr *A) {
      37           0 :     return true; 
      38             :   };
      39             :   bool TraverseAlignMac68kAttr(AlignMac68kAttr *A);
      40             :   bool VisitAlignMac68kAttr(AlignMac68kAttr *A) {
      41           0 :     return true; 
      42             :   };
      43             :   bool TraverseAlignValueAttr(AlignValueAttr *A);
      44             :   bool VisitAlignValueAttr(AlignValueAttr *A) {
      45           0 :     return true; 
      46             :   };
      47             :   bool TraverseAlignedAttr(AlignedAttr *A);
      48             :   bool VisitAlignedAttr(AlignedAttr *A) {
      49           0 :     return true; 
      50             :   };
      51             :   bool TraverseAlwaysInlineAttr(AlwaysInlineAttr *A);
      52             :   bool VisitAlwaysInlineAttr(AlwaysInlineAttr *A) {
      53           0 :     return true; 
      54             :   };
      55             :   bool TraverseAnalyzerNoReturnAttr(AnalyzerNoReturnAttr *A);
      56             :   bool VisitAnalyzerNoReturnAttr(AnalyzerNoReturnAttr *A) {
      57           0 :     return true; 
      58             :   };
      59             :   bool TraverseAnnotateAttr(AnnotateAttr *A);
      60             :   bool VisitAnnotateAttr(AnnotateAttr *A) {
      61           0 :     return true; 
      62             :   };
      63             :   bool TraverseArcWeakrefUnavailableAttr(ArcWeakrefUnavailableAttr *A);
      64             :   bool VisitArcWeakrefUnavailableAttr(ArcWeakrefUnavailableAttr *A) {
      65           0 :     return true; 
      66             :   };
      67             :   bool TraverseArgumentWithTypeTagAttr(ArgumentWithTypeTagAttr *A);
      68             :   bool VisitArgumentWithTypeTagAttr(ArgumentWithTypeTagAttr *A) {
      69           0 :     return true; 
      70             :   };
      71             :   bool TraverseAsmLabelAttr(AsmLabelAttr *A);
      72             :   bool VisitAsmLabelAttr(AsmLabelAttr *A) {
      73           0 :     return true; 
      74             :   };
      75             :   bool TraverseAssertCapabilityAttr(AssertCapabilityAttr *A);
      76             :   bool VisitAssertCapabilityAttr(AssertCapabilityAttr *A) {
      77           0 :     return true; 
      78             :   };
      79             :   bool TraverseAssertExclusiveLockAttr(AssertExclusiveLockAttr *A);
      80             :   bool VisitAssertExclusiveLockAttr(AssertExclusiveLockAttr *A) {
      81           0 :     return true; 
      82             :   };
      83             :   bool TraverseAssertSharedLockAttr(AssertSharedLockAttr *A);
      84             :   bool VisitAssertSharedLockAttr(AssertSharedLockAttr *A) {
      85           0 :     return true; 
      86             :   };
      87             :   bool TraverseAssumeAlignedAttr(AssumeAlignedAttr *A);
      88             :   bool VisitAssumeAlignedAttr(AssumeAlignedAttr *A) {
      89           0 :     return true; 
      90             :   };
      91             :   bool TraverseAvailabilityAttr(AvailabilityAttr *A);
      92             :   bool VisitAvailabilityAttr(AvailabilityAttr *A) {
      93           0 :     return true; 
      94             :   };
      95             :   bool TraverseBlocksAttr(BlocksAttr *A);
      96             :   bool VisitBlocksAttr(BlocksAttr *A) {
      97           0 :     return true; 
      98             :   };
      99             :   bool TraverseC11NoReturnAttr(C11NoReturnAttr *A);
     100             :   bool VisitC11NoReturnAttr(C11NoReturnAttr *A) {
     101           0 :     return true; 
     102             :   };
     103             :   bool TraverseCDeclAttr(CDeclAttr *A);
     104             :   bool VisitCDeclAttr(CDeclAttr *A) {
     105           0 :     return true; 
     106             :   };
     107             :   bool TraverseCFAuditedTransferAttr(CFAuditedTransferAttr *A);
     108             :   bool VisitCFAuditedTransferAttr(CFAuditedTransferAttr *A) {
     109           0 :     return true; 
     110             :   };
     111             :   bool TraverseCFConsumedAttr(CFConsumedAttr *A);
     112             :   bool VisitCFConsumedAttr(CFConsumedAttr *A) {
     113           0 :     return true; 
     114             :   };
     115             :   bool TraverseCFReturnsNotRetainedAttr(CFReturnsNotRetainedAttr *A);
     116             :   bool VisitCFReturnsNotRetainedAttr(CFReturnsNotRetainedAttr *A) {
     117           0 :     return true; 
     118             :   };
     119             :   bool TraverseCFReturnsRetainedAttr(CFReturnsRetainedAttr *A);
     120             :   bool VisitCFReturnsRetainedAttr(CFReturnsRetainedAttr *A) {
     121           0 :     return true; 
     122             :   };
     123             :   bool TraverseCFUnknownTransferAttr(CFUnknownTransferAttr *A);
     124             :   bool VisitCFUnknownTransferAttr(CFUnknownTransferAttr *A) {
     125           0 :     return true; 
     126             :   };
     127             :   bool TraverseCUDAConstantAttr(CUDAConstantAttr *A);
     128             :   bool VisitCUDAConstantAttr(CUDAConstantAttr *A) {
     129           0 :     return true; 
     130             :   };
     131             :   bool TraverseCUDADeviceAttr(CUDADeviceAttr *A);
     132             :   bool VisitCUDADeviceAttr(CUDADeviceAttr *A) {
     133           0 :     return true; 
     134             :   };
     135             :   bool TraverseCUDAGlobalAttr(CUDAGlobalAttr *A);
     136             :   bool VisitCUDAGlobalAttr(CUDAGlobalAttr *A) {
     137           0 :     return true; 
     138             :   };
     139             :   bool TraverseCUDAHostAttr(CUDAHostAttr *A);
     140             :   bool VisitCUDAHostAttr(CUDAHostAttr *A) {
     141           0 :     return true; 
     142             :   };
     143             :   bool TraverseCUDAInvalidTargetAttr(CUDAInvalidTargetAttr *A);
     144             :   bool VisitCUDAInvalidTargetAttr(CUDAInvalidTargetAttr *A) {
     145           0 :     return true; 
     146             :   };
     147             :   bool TraverseCUDALaunchBoundsAttr(CUDALaunchBoundsAttr *A);
     148             :   bool VisitCUDALaunchBoundsAttr(CUDALaunchBoundsAttr *A) {
     149           0 :     return true; 
     150             :   };
     151             :   bool TraverseCUDASharedAttr(CUDASharedAttr *A);
     152             :   bool VisitCUDASharedAttr(CUDASharedAttr *A) {
     153           0 :     return true; 
     154             :   };
     155             :   bool TraverseCXX11NoReturnAttr(CXX11NoReturnAttr *A);
     156             :   bool VisitCXX11NoReturnAttr(CXX11NoReturnAttr *A) {
     157           0 :     return true; 
     158             :   };
     159             :   bool TraverseCallableWhenAttr(CallableWhenAttr *A);
     160             :   bool VisitCallableWhenAttr(CallableWhenAttr *A) {
     161           0 :     return true; 
     162             :   };
     163             :   bool TraverseCapabilityAttr(CapabilityAttr *A);
     164             :   bool VisitCapabilityAttr(CapabilityAttr *A) {
     165           0 :     return true; 
     166             :   };
     167             :   bool TraverseCapturedRecordAttr(CapturedRecordAttr *A);
     168             :   bool VisitCapturedRecordAttr(CapturedRecordAttr *A) {
     169           0 :     return true; 
     170             :   };
     171             :   bool TraverseCarriesDependencyAttr(CarriesDependencyAttr *A);
     172             :   bool VisitCarriesDependencyAttr(CarriesDependencyAttr *A) {
     173           0 :     return true; 
     174             :   };
     175             :   bool TraverseCleanupAttr(CleanupAttr *A);
     176             :   bool VisitCleanupAttr(CleanupAttr *A) {
     177           0 :     return true; 
     178             :   };
     179             :   bool TraverseColdAttr(ColdAttr *A);
     180             :   bool VisitColdAttr(ColdAttr *A) {
     181           0 :     return true; 
     182             :   };
     183             :   bool TraverseCommonAttr(CommonAttr *A);
     184             :   bool VisitCommonAttr(CommonAttr *A) {
     185           0 :     return true; 
     186             :   };
     187             :   bool TraverseConstAttr(ConstAttr *A);
     188             :   bool VisitConstAttr(ConstAttr *A) {
     189           0 :     return true; 
     190             :   };
     191             :   bool TraverseConstructorAttr(ConstructorAttr *A);
     192             :   bool VisitConstructorAttr(ConstructorAttr *A) {
     193           0 :     return true; 
     194             :   };
     195             :   bool TraverseConsumableAttr(ConsumableAttr *A);
     196             :   bool VisitConsumableAttr(ConsumableAttr *A) {
     197           0 :     return true; 
     198             :   };
     199             :   bool TraverseConsumableAutoCastAttr(ConsumableAutoCastAttr *A);
     200             :   bool VisitConsumableAutoCastAttr(ConsumableAutoCastAttr *A) {
     201           0 :     return true; 
     202             :   };
     203             :   bool TraverseConsumableSetOnReadAttr(ConsumableSetOnReadAttr *A);
     204             :   bool VisitConsumableSetOnReadAttr(ConsumableSetOnReadAttr *A) {
     205           0 :     return true; 
     206             :   };
     207             :   bool TraverseDLLExportAttr(DLLExportAttr *A);
     208             :   bool VisitDLLExportAttr(DLLExportAttr *A) {
     209           0 :     return true; 
     210             :   };
     211             :   bool TraverseDLLImportAttr(DLLImportAttr *A);
     212             :   bool VisitDLLImportAttr(DLLImportAttr *A) {
     213           0 :     return true; 
     214             :   };
     215             :   bool TraverseDeprecatedAttr(DeprecatedAttr *A);
     216             :   bool VisitDeprecatedAttr(DeprecatedAttr *A) {
     217           0 :     return true; 
     218             :   };
     219             :   bool TraverseDestructorAttr(DestructorAttr *A);
     220             :   bool VisitDestructorAttr(DestructorAttr *A) {
     221           0 :     return true; 
     222             :   };
     223             :   bool TraverseEnableIfAttr(EnableIfAttr *A);
     224             :   bool VisitEnableIfAttr(EnableIfAttr *A) {
     225           0 :     return true; 
     226             :   };
     227             :   bool TraverseExclusiveTrylockFunctionAttr(ExclusiveTrylockFunctionAttr *A);
     228             :   bool VisitExclusiveTrylockFunctionAttr(ExclusiveTrylockFunctionAttr *A) {
     229           0 :     return true; 
     230             :   };
     231             :   bool TraverseFallThroughAttr(FallThroughAttr *A);
     232             :   bool VisitFallThroughAttr(FallThroughAttr *A) {
     233           0 :     return true; 
     234             :   };
     235             :   bool TraverseFastCallAttr(FastCallAttr *A);
     236             :   bool VisitFastCallAttr(FastCallAttr *A) {
     237           0 :     return true; 
     238             :   };
     239             :   bool TraverseFinalAttr(FinalAttr *A);
     240             :   bool VisitFinalAttr(FinalAttr *A) {
     241           0 :     return true; 
     242             :   };
     243             :   bool TraverseFlagEnumAttr(FlagEnumAttr *A);
     244             :   bool VisitFlagEnumAttr(FlagEnumAttr *A) {
     245           0 :     return true; 
     246             :   };
     247             :   bool TraverseFlattenAttr(FlattenAttr *A);
     248             :   bool VisitFlattenAttr(FlattenAttr *A) {
     249           0 :     return true; 
     250             :   };
     251             :   bool TraverseFormatAttr(FormatAttr *A);
     252             :   bool VisitFormatAttr(FormatAttr *A) {
     253           0 :     return true; 
     254             :   };
     255             :   bool TraverseFormatArgAttr(FormatArgAttr *A);
     256             :   bool VisitFormatArgAttr(FormatArgAttr *A) {
     257           0 :     return true; 
     258             :   };
     259             :   bool TraverseGNUInlineAttr(GNUInlineAttr *A);
     260             :   bool VisitGNUInlineAttr(GNUInlineAttr *A) {
     261           0 :     return true; 
     262             :   };
     263             :   bool TraverseGuardedByAttr(GuardedByAttr *A);
     264             :   bool VisitGuardedByAttr(GuardedByAttr *A) {
     265           0 :     return true; 
     266             :   };
     267             :   bool TraverseGuardedVarAttr(GuardedVarAttr *A);
     268             :   bool VisitGuardedVarAttr(GuardedVarAttr *A) {
     269           0 :     return true; 
     270             :   };
     271             :   bool TraverseHotAttr(HotAttr *A);
     272             :   bool VisitHotAttr(HotAttr *A) {
     273           0 :     return true; 
     274             :   };
     275             :   bool TraverseIBActionAttr(IBActionAttr *A);
     276             :   bool VisitIBActionAttr(IBActionAttr *A) {
     277           0 :     return true; 
     278             :   };
     279             :   bool TraverseIBOutletAttr(IBOutletAttr *A);
     280             :   bool VisitIBOutletAttr(IBOutletAttr *A) {
     281           0 :     return true; 
     282             :   };
     283             :   bool TraverseIBOutletCollectionAttr(IBOutletCollectionAttr *A);
     284             :   bool VisitIBOutletCollectionAttr(IBOutletCollectionAttr *A) {
     285           0 :     return true; 
     286             :   };
     287             :   bool TraverseInitPriorityAttr(InitPriorityAttr *A);
     288             :   bool VisitInitPriorityAttr(InitPriorityAttr *A) {
     289           0 :     return true; 
     290             :   };
     291             :   bool TraverseInitSegAttr(InitSegAttr *A);
     292             :   bool VisitInitSegAttr(InitSegAttr *A) {
     293           0 :     return true; 
     294             :   };
     295             :   bool TraverseIntelOclBiccAttr(IntelOclBiccAttr *A);
     296             :   bool VisitIntelOclBiccAttr(IntelOclBiccAttr *A) {
     297           0 :     return true; 
     298             :   };
     299             :   bool TraverseLockReturnedAttr(LockReturnedAttr *A);
     300             :   bool VisitLockReturnedAttr(LockReturnedAttr *A) {
     301           0 :     return true; 
     302             :   };
     303             :   bool TraverseLocksExcludedAttr(LocksExcludedAttr *A);
     304             :   bool VisitLocksExcludedAttr(LocksExcludedAttr *A) {
     305           0 :     return true; 
     306             :   };
     307             :   bool TraverseLoopHintAttr(LoopHintAttr *A);
     308             :   bool VisitLoopHintAttr(LoopHintAttr *A) {
     309           0 :     return true; 
     310             :   };
     311             :   bool TraverseMSABIAttr(MSABIAttr *A);
     312             :   bool VisitMSABIAttr(MSABIAttr *A) {
     313           0 :     return true; 
     314             :   };
     315             :   bool TraverseMSInheritanceAttr(MSInheritanceAttr *A);
     316             :   bool VisitMSInheritanceAttr(MSInheritanceAttr *A) {
     317           0 :     return true; 
     318             :   };
     319             :   bool TraverseMSNoVTableAttr(MSNoVTableAttr *A);
     320             :   bool VisitMSNoVTableAttr(MSNoVTableAttr *A) {
     321           0 :     return true; 
     322             :   };
     323             :   bool TraverseMSP430InterruptAttr(MSP430InterruptAttr *A);
     324             :   bool VisitMSP430InterruptAttr(MSP430InterruptAttr *A) {
     325           0 :     return true; 
     326             :   };
     327             :   bool TraverseMSStructAttr(MSStructAttr *A);
     328             :   bool VisitMSStructAttr(MSStructAttr *A) {
     329           0 :     return true; 
     330             :   };
     331             :   bool TraverseMSVtorDispAttr(MSVtorDispAttr *A);
     332             :   bool VisitMSVtorDispAttr(MSVtorDispAttr *A) {
     333           0 :     return true; 
     334             :   };
     335             :   bool TraverseMaxFieldAlignmentAttr(MaxFieldAlignmentAttr *A);
     336             :   bool VisitMaxFieldAlignmentAttr(MaxFieldAlignmentAttr *A) {
     337           0 :     return true; 
     338             :   };
     339             :   bool TraverseMayAliasAttr(MayAliasAttr *A);
     340             :   bool VisitMayAliasAttr(MayAliasAttr *A) {
     341           0 :     return true; 
     342             :   };
     343             :   bool TraverseMinSizeAttr(MinSizeAttr *A);
     344             :   bool VisitMinSizeAttr(MinSizeAttr *A) {
     345           0 :     return true; 
     346             :   };
     347             :   bool TraverseMips16Attr(Mips16Attr *A);
     348             :   bool VisitMips16Attr(Mips16Attr *A) {
     349           0 :     return true; 
     350             :   };
     351             :   bool TraverseModeAttr(ModeAttr *A);
     352             :   bool VisitModeAttr(ModeAttr *A) {
     353           0 :     return true; 
     354             :   };
     355             :   bool TraverseNSConsumedAttr(NSConsumedAttr *A);
     356             :   bool VisitNSConsumedAttr(NSConsumedAttr *A) {
     357           0 :     return true; 
     358             :   };
     359             :   bool TraverseNSConsumesSelfAttr(NSConsumesSelfAttr *A);
     360             :   bool VisitNSConsumesSelfAttr(NSConsumesSelfAttr *A) {
     361           0 :     return true; 
     362             :   };
     363             :   bool TraverseNSReturnsAutoreleasedAttr(NSReturnsAutoreleasedAttr *A);
     364             :   bool VisitNSReturnsAutoreleasedAttr(NSReturnsAutoreleasedAttr *A) {
     365           0 :     return true; 
     366             :   };
     367             :   bool TraverseNSReturnsNotRetainedAttr(NSReturnsNotRetainedAttr *A);
     368             :   bool VisitNSReturnsNotRetainedAttr(NSReturnsNotRetainedAttr *A) {
     369           0 :     return true; 
     370             :   };
     371             :   bool TraverseNSReturnsRetainedAttr(NSReturnsRetainedAttr *A);
     372             :   bool VisitNSReturnsRetainedAttr(NSReturnsRetainedAttr *A) {
     373           0 :     return true; 
     374             :   };
     375             :   bool TraverseNakedAttr(NakedAttr *A);
     376             :   bool VisitNakedAttr(NakedAttr *A) {
     377           0 :     return true; 
     378             :   };
     379             :   bool TraverseNoCommonAttr(NoCommonAttr *A);
     380             :   bool VisitNoCommonAttr(NoCommonAttr *A) {
     381           0 :     return true; 
     382             :   };
     383             :   bool TraverseNoDebugAttr(NoDebugAttr *A);
     384             :   bool VisitNoDebugAttr(NoDebugAttr *A) {
     385           0 :     return true; 
     386             :   };
     387             :   bool TraverseNoDuplicateAttr(NoDuplicateAttr *A);
     388             :   bool VisitNoDuplicateAttr(NoDuplicateAttr *A) {
     389           0 :     return true; 
     390             :   };
     391             :   bool TraverseNoInlineAttr(NoInlineAttr *A);
     392             :   bool VisitNoInlineAttr(NoInlineAttr *A) {
     393           0 :     return true; 
     394             :   };
     395             :   bool TraverseNoInstrumentFunctionAttr(NoInstrumentFunctionAttr *A);
     396             :   bool VisitNoInstrumentFunctionAttr(NoInstrumentFunctionAttr *A) {
     397           0 :     return true; 
     398             :   };
     399             :   bool TraverseNoMips16Attr(NoMips16Attr *A);
     400             :   bool VisitNoMips16Attr(NoMips16Attr *A) {
     401           0 :     return true; 
     402             :   };
     403             :   bool TraverseNoReturnAttr(NoReturnAttr *A);
     404             :   bool VisitNoReturnAttr(NoReturnAttr *A) {
     405           0 :     return true; 
     406             :   };
     407             :   bool TraverseNoSanitizeAttr(NoSanitizeAttr *A);
     408             :   bool VisitNoSanitizeAttr(NoSanitizeAttr *A) {
     409           0 :     return true; 
     410             :   };
     411             :   bool TraverseNoSplitStackAttr(NoSplitStackAttr *A);
     412             :   bool VisitNoSplitStackAttr(NoSplitStackAttr *A) {
     413           0 :     return true; 
     414             :   };
     415             :   bool TraverseNoThreadSafetyAnalysisAttr(NoThreadSafetyAnalysisAttr *A);
     416             :   bool VisitNoThreadSafetyAnalysisAttr(NoThreadSafetyAnalysisAttr *A) {
     417           0 :     return true; 
     418             :   };
     419             :   bool TraverseNoThrowAttr(NoThrowAttr *A);
     420             :   bool VisitNoThrowAttr(NoThrowAttr *A) {
     421           0 :     return true; 
     422             :   };
     423             :   bool TraverseNonNullAttr(NonNullAttr *A);
     424             :   bool VisitNonNullAttr(NonNullAttr *A) {
     425           0 :     return true; 
     426             :   };
     427             :   bool TraverseOMPThreadPrivateDeclAttr(OMPThreadPrivateDeclAttr *A);
     428             :   bool VisitOMPThreadPrivateDeclAttr(OMPThreadPrivateDeclAttr *A) {
     429           0 :     return true; 
     430             :   };
     431             :   bool TraverseObjCBoxableAttr(ObjCBoxableAttr *A);
     432             :   bool VisitObjCBoxableAttr(ObjCBoxableAttr *A) {
     433           0 :     return true; 
     434             :   };
     435             :   bool TraverseObjCBridgeAttr(ObjCBridgeAttr *A);
     436             :   bool VisitObjCBridgeAttr(ObjCBridgeAttr *A) {
     437           0 :     return true; 
     438             :   };
     439             :   bool TraverseObjCBridgeMutableAttr(ObjCBridgeMutableAttr *A);
     440             :   bool VisitObjCBridgeMutableAttr(ObjCBridgeMutableAttr *A) {
     441           0 :     return true; 
     442             :   };
     443             :   bool TraverseObjCBridgeRelatedAttr(ObjCBridgeRelatedAttr *A);
     444             :   bool VisitObjCBridgeRelatedAttr(ObjCBridgeRelatedAttr *A) {
     445           0 :     return true; 
     446             :   };
     447             :   bool TraverseObjCDesignatedInitializerAttr(ObjCDesignatedInitializerAttr *A);
     448             :   bool VisitObjCDesignatedInitializerAttr(ObjCDesignatedInitializerAttr *A) {
     449           0 :     return true; 
     450             :   };
     451             :   bool TraverseObjCExceptionAttr(ObjCExceptionAttr *A);
     452             :   bool VisitObjCExceptionAttr(ObjCExceptionAttr *A) {
     453           0 :     return true; 
     454             :   };
     455             :   bool TraverseObjCExplicitProtocolImplAttr(ObjCExplicitProtocolImplAttr *A);
     456             :   bool VisitObjCExplicitProtocolImplAttr(ObjCExplicitProtocolImplAttr *A) {
     457           0 :     return true; 
     458             :   };
     459             :   bool TraverseObjCIndependentClassAttr(ObjCIndependentClassAttr *A);
     460             :   bool VisitObjCIndependentClassAttr(ObjCIndependentClassAttr *A) {
     461           0 :     return true; 
     462             :   };
     463             :   bool TraverseObjCMethodFamilyAttr(ObjCMethodFamilyAttr *A);
     464             :   bool VisitObjCMethodFamilyAttr(ObjCMethodFamilyAttr *A) {
     465           0 :     return true; 
     466             :   };
     467             :   bool TraverseObjCNSObjectAttr(ObjCNSObjectAttr *A);
     468             :   bool VisitObjCNSObjectAttr(ObjCNSObjectAttr *A) {
     469           0 :     return true; 
     470             :   };
     471             :   bool TraverseObjCPreciseLifetimeAttr(ObjCPreciseLifetimeAttr *A);
     472             :   bool VisitObjCPreciseLifetimeAttr(ObjCPreciseLifetimeAttr *A) {
     473           0 :     return true; 
     474             :   };
     475             :   bool TraverseObjCRequiresPropertyDefsAttr(ObjCRequiresPropertyDefsAttr *A);
     476             :   bool VisitObjCRequiresPropertyDefsAttr(ObjCRequiresPropertyDefsAttr *A) {
     477           0 :     return true; 
     478             :   };
     479             :   bool TraverseObjCRequiresSuperAttr(ObjCRequiresSuperAttr *A);
     480             :   bool VisitObjCRequiresSuperAttr(ObjCRequiresSuperAttr *A) {
     481           0 :     return true; 
     482             :   };
     483             :   bool TraverseObjCReturnsInnerPointerAttr(ObjCReturnsInnerPointerAttr *A);
     484             :   bool VisitObjCReturnsInnerPointerAttr(ObjCReturnsInnerPointerAttr *A) {
     485           0 :     return true; 
     486             :   };
     487             :   bool TraverseObjCRootClassAttr(ObjCRootClassAttr *A);
     488             :   bool VisitObjCRootClassAttr(ObjCRootClassAttr *A) {
     489           0 :     return true; 
     490             :   };
     491             :   bool TraverseObjCRuntimeNameAttr(ObjCRuntimeNameAttr *A);
     492             :   bool VisitObjCRuntimeNameAttr(ObjCRuntimeNameAttr *A) {
     493           0 :     return true; 
     494             :   };
     495             :   bool TraverseOpenCLImageAccessAttr(OpenCLImageAccessAttr *A);
     496             :   bool VisitOpenCLImageAccessAttr(OpenCLImageAccessAttr *A) {
     497           0 :     return true; 
     498             :   };
     499             :   bool TraverseOpenCLKernelAttr(OpenCLKernelAttr *A);
     500             :   bool VisitOpenCLKernelAttr(OpenCLKernelAttr *A) {
     501           0 :     return true; 
     502             :   };
     503             :   bool TraverseOptimizeNoneAttr(OptimizeNoneAttr *A);
     504             :   bool VisitOptimizeNoneAttr(OptimizeNoneAttr *A) {
     505           0 :     return true; 
     506             :   };
     507             :   bool TraverseOverloadableAttr(OverloadableAttr *A);
     508             :   bool VisitOverloadableAttr(OverloadableAttr *A) {
     509           0 :     return true; 
     510             :   };
     511             :   bool TraverseOverrideAttr(OverrideAttr *A);
     512             :   bool VisitOverrideAttr(OverrideAttr *A) {
     513           0 :     return true; 
     514             :   };
     515             :   bool TraverseOwnershipAttr(OwnershipAttr *A);
     516             :   bool VisitOwnershipAttr(OwnershipAttr *A) {
     517           0 :     return true; 
     518             :   };
     519             :   bool TraversePackedAttr(PackedAttr *A);
     520             :   bool VisitPackedAttr(PackedAttr *A) {
     521           0 :     return true; 
     522             :   };
     523             :   bool TraverseParamTypestateAttr(ParamTypestateAttr *A);
     524             :   bool VisitParamTypestateAttr(ParamTypestateAttr *A) {
     525           0 :     return true; 
     526             :   };
     527             :   bool TraversePascalAttr(PascalAttr *A);
     528             :   bool VisitPascalAttr(PascalAttr *A) {
     529           0 :     return true; 
     530             :   };
     531             :   bool TraversePcsAttr(PcsAttr *A);
     532             :   bool VisitPcsAttr(PcsAttr *A) {
     533           0 :     return true; 
     534             :   };
     535             :   bool TraversePtGuardedByAttr(PtGuardedByAttr *A);
     536             :   bool VisitPtGuardedByAttr(PtGuardedByAttr *A) {
     537           0 :     return true; 
     538             :   };
     539             :   bool TraversePtGuardedVarAttr(PtGuardedVarAttr *A);
     540             :   bool VisitPtGuardedVarAttr(PtGuardedVarAttr *A) {
     541           0 :     return true; 
     542             :   };
     543             :   bool TraversePureAttr(PureAttr *A);
     544             :   bool VisitPureAttr(PureAttr *A) {
     545           0 :     return true; 
     546             :   };
     547             :   bool TraverseReleaseCapabilityAttr(ReleaseCapabilityAttr *A);
     548             :   bool VisitReleaseCapabilityAttr(ReleaseCapabilityAttr *A) {
     549           0 :     return true; 
     550             :   };
     551             :   bool TraverseReqdWorkGroupSizeAttr(ReqdWorkGroupSizeAttr *A);
     552             :   bool VisitReqdWorkGroupSizeAttr(ReqdWorkGroupSizeAttr *A) {
     553           0 :     return true; 
     554             :   };
     555             :   bool TraverseRequiresCapabilityAttr(RequiresCapabilityAttr *A);
     556             :   bool VisitRequiresCapabilityAttr(RequiresCapabilityAttr *A) {
     557           0 :     return true; 
     558             :   };
     559             :   bool TraverseRestrictAttr(RestrictAttr *A);
     560             :   bool VisitRestrictAttr(RestrictAttr *A) {
     561           0 :     return true; 
     562             :   };
     563             :   bool TraverseReturnTypestateAttr(ReturnTypestateAttr *A);
     564             :   bool VisitReturnTypestateAttr(ReturnTypestateAttr *A) {
     565           0 :     return true; 
     566             :   };
     567             :   bool TraverseReturnsNonNullAttr(ReturnsNonNullAttr *A);
     568             :   bool VisitReturnsNonNullAttr(ReturnsNonNullAttr *A) {
     569           0 :     return true; 
     570             :   };
     571             :   bool TraverseReturnsTwiceAttr(ReturnsTwiceAttr *A);
     572             :   bool VisitReturnsTwiceAttr(ReturnsTwiceAttr *A) {
     573           0 :     return true; 
     574             :   };
     575             :   bool TraverseScopedLockableAttr(ScopedLockableAttr *A);
     576             :   bool VisitScopedLockableAttr(ScopedLockableAttr *A) {
     577           0 :     return true; 
     578             :   };
     579             :   bool TraverseSectionAttr(SectionAttr *A);
     580             :   bool VisitSectionAttr(SectionAttr *A) {
     581           0 :     return true; 
     582             :   };
     583             :   bool TraverseSelectAnyAttr(SelectAnyAttr *A);
     584             :   bool VisitSelectAnyAttr(SelectAnyAttr *A) {
     585           0 :     return true; 
     586             :   };
     587             :   bool TraverseSentinelAttr(SentinelAttr *A);
     588             :   bool VisitSentinelAttr(SentinelAttr *A) {
     589           0 :     return true; 
     590             :   };
     591             :   bool TraverseSetTypestateAttr(SetTypestateAttr *A);
     592             :   bool VisitSetTypestateAttr(SetTypestateAttr *A) {
     593           0 :     return true; 
     594             :   };
     595             :   bool TraverseSharedTrylockFunctionAttr(SharedTrylockFunctionAttr *A);
     596             :   bool VisitSharedTrylockFunctionAttr(SharedTrylockFunctionAttr *A) {
     597           0 :     return true; 
     598             :   };
     599             :   bool TraverseStdCallAttr(StdCallAttr *A);
     600             :   bool VisitStdCallAttr(StdCallAttr *A) {
     601           0 :     return true; 
     602             :   };
     603             :   bool TraverseSysVABIAttr(SysVABIAttr *A);
     604             :   bool VisitSysVABIAttr(SysVABIAttr *A) {
     605           0 :     return true; 
     606             :   };
     607             :   bool TraverseTLSModelAttr(TLSModelAttr *A);
     608             :   bool VisitTLSModelAttr(TLSModelAttr *A) {
     609           0 :     return true; 
     610             :   };
     611             :   bool TraverseTargetAttr(TargetAttr *A);
     612             :   bool VisitTargetAttr(TargetAttr *A) {
     613           0 :     return true; 
     614             :   };
     615             :   bool TraverseTestTypestateAttr(TestTypestateAttr *A);
     616             :   bool VisitTestTypestateAttr(TestTypestateAttr *A) {
     617           0 :     return true; 
     618             :   };
     619             :   bool TraverseThisCallAttr(ThisCallAttr *A);
     620             :   bool VisitThisCallAttr(ThisCallAttr *A) {
     621           0 :     return true; 
     622             :   };
     623             :   bool TraverseThreadAttr(ThreadAttr *A);
     624             :   bool VisitThreadAttr(ThreadAttr *A) {
     625           0 :     return true; 
     626             :   };
     627             :   bool TraverseTransparentUnionAttr(TransparentUnionAttr *A);
     628             :   bool VisitTransparentUnionAttr(TransparentUnionAttr *A) {
     629           0 :     return true; 
     630             :   };
     631             :   bool TraverseTryAcquireCapabilityAttr(TryAcquireCapabilityAttr *A);
     632             :   bool VisitTryAcquireCapabilityAttr(TryAcquireCapabilityAttr *A) {
     633           0 :     return true; 
     634             :   };
     635             :   bool TraverseTypeTagForDatatypeAttr(TypeTagForDatatypeAttr *A);
     636             :   bool VisitTypeTagForDatatypeAttr(TypeTagForDatatypeAttr *A) {
     637           0 :     return true; 
     638             :   };
     639             :   bool TraverseTypeVisibilityAttr(TypeVisibilityAttr *A);
     640             :   bool VisitTypeVisibilityAttr(TypeVisibilityAttr *A) {
     641           0 :     return true; 
     642             :   };
     643             :   bool TraverseUnavailableAttr(UnavailableAttr *A);
     644             :   bool VisitUnavailableAttr(UnavailableAttr *A) {
     645           0 :     return true; 
     646             :   };
     647             :   bool TraverseUnusedAttr(UnusedAttr *A);
     648             :   bool VisitUnusedAttr(UnusedAttr *A) {
     649           0 :     return true; 
     650             :   };
     651             :   bool TraverseUsedAttr(UsedAttr *A);
     652             :   bool VisitUsedAttr(UsedAttr *A) {
     653           0 :     return true; 
     654             :   };
     655             :   bool TraverseUuidAttr(UuidAttr *A);
     656             :   bool VisitUuidAttr(UuidAttr *A) {
     657           0 :     return true; 
     658             :   };
     659             :   bool TraverseVecReturnAttr(VecReturnAttr *A);
     660             :   bool VisitVecReturnAttr(VecReturnAttr *A) {
     661           0 :     return true; 
     662             :   };
     663             :   bool TraverseVecTypeHintAttr(VecTypeHintAttr *A);
     664             :   bool VisitVecTypeHintAttr(VecTypeHintAttr *A) {
     665           0 :     return true; 
     666             :   };
     667             :   bool TraverseVectorCallAttr(VectorCallAttr *A);
     668             :   bool VisitVectorCallAttr(VectorCallAttr *A) {
     669           0 :     return true; 
     670             :   };
     671             :   bool TraverseVisibilityAttr(VisibilityAttr *A);
     672             :   bool VisitVisibilityAttr(VisibilityAttr *A) {
     673           0 :     return true; 
     674             :   };
     675             :   bool TraverseWarnUnusedAttr(WarnUnusedAttr *A);
     676             :   bool VisitWarnUnusedAttr(WarnUnusedAttr *A) {
     677           0 :     return true; 
     678             :   };
     679             :   bool TraverseWarnUnusedResultAttr(WarnUnusedResultAttr *A);
     680             :   bool VisitWarnUnusedResultAttr(WarnUnusedResultAttr *A) {
     681           0 :     return true; 
     682             :   };
     683             :   bool TraverseWeakAttr(WeakAttr *A);
     684             :   bool VisitWeakAttr(WeakAttr *A) {
     685           0 :     return true; 
     686             :   };
     687             :   bool TraverseWeakImportAttr(WeakImportAttr *A);
     688             :   bool VisitWeakImportAttr(WeakImportAttr *A) {
     689           0 :     return true; 
     690             :   };
     691             :   bool TraverseWeakRefAttr(WeakRefAttr *A);
     692             :   bool VisitWeakRefAttr(WeakRefAttr *A) {
     693           0 :     return true; 
     694             :   };
     695             :   bool TraverseWorkGroupSizeHintAttr(WorkGroupSizeHintAttr *A);
     696             :   bool VisitWorkGroupSizeHintAttr(WorkGroupSizeHintAttr *A) {
     697           0 :     return true; 
     698             :   };
     699             :   bool TraverseX86ForceAlignArgPointerAttr(X86ForceAlignArgPointerAttr *A);
     700             :   bool VisitX86ForceAlignArgPointerAttr(X86ForceAlignArgPointerAttr *A) {
     701           0 :     return true; 
     702             :   };
     703             : 
     704             : #else // ATTR_VISITOR_DECLS_ONLY
     705             : 
     706             : template <typename Derived>
     707             : bool VISITORCLASS<Derived>::TraverseAMDGPUNumSGPRAttr(AMDGPUNumSGPRAttr *A) {
     708           0 :   if (!getDerived().VisitAttr(A))
     709           0 :     return false;
     710           0 :   if (!getDerived().VisitAMDGPUNumSGPRAttr(A))
     711           0 :     return false;
     712           0 :   return true;
     713           0 : }
     714             : 
     715             : template <typename Derived>
     716             : bool VISITORCLASS<Derived>::TraverseAMDGPUNumVGPRAttr(AMDGPUNumVGPRAttr *A) {
     717           0 :   if (!getDerived().VisitAttr(A))
     718           0 :     return false;
     719           0 :   if (!getDerived().VisitAMDGPUNumVGPRAttr(A))
     720           0 :     return false;
     721           0 :   return true;
     722           0 : }
     723             : 
     724             : template <typename Derived>
     725             : bool VISITORCLASS<Derived>::TraverseARMInterruptAttr(ARMInterruptAttr *A) {
     726           0 :   if (!getDerived().VisitAttr(A))
     727           0 :     return false;
     728           0 :   if (!getDerived().VisitARMInterruptAttr(A))
     729           0 :     return false;
     730           0 :   return true;
     731           0 : }
     732             : 
     733             : template <typename Derived>
     734             : bool VISITORCLASS<Derived>::TraverseAcquireCapabilityAttr(AcquireCapabilityAttr *A) {
     735           0 :   if (!getDerived().VisitAttr(A))
     736           0 :     return false;
     737           0 :   if (!getDerived().VisitAcquireCapabilityAttr(A))
     738           0 :     return false;
     739             :   {
     740           0 :     Expr * *I = A->args_begin();
     741           0 :     Expr * *E = A->args_end();
     742           0 :     for (; I != E; ++I) {
     743           0 :       if (!getDerived().TraverseStmt(*I))
     744           0 :         return false;
     745           0 :     }
     746             :   }
     747           0 :   return true;
     748           0 : }
     749             : 
     750             : template <typename Derived>
     751             : bool VISITORCLASS<Derived>::TraverseAcquiredAfterAttr(AcquiredAfterAttr *A) {
     752           0 :   if (!getDerived().VisitAttr(A))
     753           0 :     return false;
     754           0 :   if (!getDerived().VisitAcquiredAfterAttr(A))
     755           0 :     return false;
     756             :   {
     757           0 :     Expr * *I = A->args_begin();
     758           0 :     Expr * *E = A->args_end();
     759           0 :     for (; I != E; ++I) {
     760           0 :       if (!getDerived().TraverseStmt(*I))
     761           0 :         return false;
     762           0 :     }
     763             :   }
     764           0 :   return true;
     765           0 : }
     766             : 
     767             : template <typename Derived>
     768             : bool VISITORCLASS<Derived>::TraverseAcquiredBeforeAttr(AcquiredBeforeAttr *A) {
     769           0 :   if (!getDerived().VisitAttr(A))
     770           0 :     return false;
     771           0 :   if (!getDerived().VisitAcquiredBeforeAttr(A))
     772           0 :     return false;
     773             :   {
     774           0 :     Expr * *I = A->args_begin();
     775           0 :     Expr * *E = A->args_end();
     776           0 :     for (; I != E; ++I) {
     777           0 :       if (!getDerived().TraverseStmt(*I))
     778           0 :         return false;
     779           0 :     }
     780             :   }
     781           0 :   return true;
     782           0 : }
     783             : 
     784             : template <typename Derived>
     785             : bool VISITORCLASS<Derived>::TraverseAliasAttr(AliasAttr *A) {
     786           0 :   if (!getDerived().VisitAttr(A))
     787           0 :     return false;
     788           0 :   if (!getDerived().VisitAliasAttr(A))
     789           0 :     return false;
     790           0 :   return true;
     791           0 : }
     792             : 
     793             : template <typename Derived>
     794             : bool VISITORCLASS<Derived>::TraverseAlignMac68kAttr(AlignMac68kAttr *A) {
     795           0 :   if (!getDerived().VisitAttr(A))
     796           0 :     return false;
     797           0 :   if (!getDerived().VisitAlignMac68kAttr(A))
     798           0 :     return false;
     799           0 :   return true;
     800           0 : }
     801             : 
     802             : template <typename Derived>
     803             : bool VISITORCLASS<Derived>::TraverseAlignValueAttr(AlignValueAttr *A) {
     804           0 :   if (!getDerived().VisitAttr(A))
     805           0 :     return false;
     806           0 :   if (!getDerived().VisitAlignValueAttr(A))
     807           0 :     return false;
     808           0 :   if (!getDerived().TraverseStmt(A->getAlignment()))
     809           0 :     return false;
     810           0 :   return true;
     811           0 : }
     812             : 
     813             : template <typename Derived>
     814             : bool VISITORCLASS<Derived>::TraverseAlignedAttr(AlignedAttr *A) {
     815           0 :   if (!getDerived().VisitAttr(A))
     816           0 :     return false;
     817           0 :   if (!getDerived().VisitAlignedAttr(A))
     818           0 :     return false;
     819           0 :   return true;
     820           0 : }
     821             : 
     822             : template <typename Derived>
     823             : bool VISITORCLASS<Derived>::TraverseAlwaysInlineAttr(AlwaysInlineAttr *A) {
     824           0 :   if (!getDerived().VisitAttr(A))
     825           0 :     return false;
     826           0 :   if (!getDerived().VisitAlwaysInlineAttr(A))
     827           0 :     return false;
     828           0 :   return true;
     829           0 : }
     830             : 
     831             : template <typename Derived>
     832             : bool VISITORCLASS<Derived>::TraverseAnalyzerNoReturnAttr(AnalyzerNoReturnAttr *A) {
     833           0 :   if (!getDerived().VisitAttr(A))
     834           0 :     return false;
     835           0 :   if (!getDerived().VisitAnalyzerNoReturnAttr(A))
     836           0 :     return false;
     837           0 :   return true;
     838           0 : }
     839             : 
     840             : template <typename Derived>
     841             : bool VISITORCLASS<Derived>::TraverseAnnotateAttr(AnnotateAttr *A) {
     842           0 :   if (!getDerived().VisitAttr(A))
     843           0 :     return false;
     844           0 :   if (!getDerived().VisitAnnotateAttr(A))
     845           0 :     return false;
     846           0 :   return true;
     847           0 : }
     848             : 
     849             : template <typename Derived>
     850             : bool VISITORCLASS<Derived>::TraverseArcWeakrefUnavailableAttr(ArcWeakrefUnavailableAttr *A) {
     851           0 :   if (!getDerived().VisitAttr(A))
     852           0 :     return false;
     853           0 :   if (!getDerived().VisitArcWeakrefUnavailableAttr(A))
     854           0 :     return false;
     855           0 :   return true;
     856           0 : }
     857             : 
     858             : template <typename Derived>
     859             : bool VISITORCLASS<Derived>::TraverseArgumentWithTypeTagAttr(ArgumentWithTypeTagAttr *A) {
     860           0 :   if (!getDerived().VisitAttr(A))
     861           0 :     return false;
     862           0 :   if (!getDerived().VisitArgumentWithTypeTagAttr(A))
     863           0 :     return false;
     864           0 :   return true;
     865           0 : }
     866             : 
     867             : template <typename Derived>
     868             : bool VISITORCLASS<Derived>::TraverseAsmLabelAttr(AsmLabelAttr *A) {
     869           0 :   if (!getDerived().VisitAttr(A))
     870           0 :     return false;
     871           0 :   if (!getDerived().VisitAsmLabelAttr(A))
     872           0 :     return false;
     873           0 :   return true;
     874           0 : }
     875             : 
     876             : template <typename Derived>
     877             : bool VISITORCLASS<Derived>::TraverseAssertCapabilityAttr(AssertCapabilityAttr *A) {
     878           0 :   if (!getDerived().VisitAttr(A))
     879           0 :     return false;
     880           0 :   if (!getDerived().VisitAssertCapabilityAttr(A))
     881           0 :     return false;
     882           0 :   if (!getDerived().TraverseStmt(A->getExpr()))
     883           0 :     return false;
     884           0 :   return true;
     885           0 : }
     886             : 
     887             : template <typename Derived>
     888             : bool VISITORCLASS<Derived>::TraverseAssertExclusiveLockAttr(AssertExclusiveLockAttr *A) {
     889           0 :   if (!getDerived().VisitAttr(A))
     890           0 :     return false;
     891           0 :   if (!getDerived().VisitAssertExclusiveLockAttr(A))
     892           0 :     return false;
     893             :   {
     894           0 :     Expr * *I = A->args_begin();
     895           0 :     Expr * *E = A->args_end();
     896           0 :     for (; I != E; ++I) {
     897           0 :       if (!getDerived().TraverseStmt(*I))
     898           0 :         return false;
     899           0 :     }
     900             :   }
     901           0 :   return true;
     902           0 : }
     903             : 
     904             : template <typename Derived>
     905             : bool VISITORCLASS<Derived>::TraverseAssertSharedLockAttr(AssertSharedLockAttr *A) {
     906           0 :   if (!getDerived().VisitAttr(A))
     907           0 :     return false;
     908           0 :   if (!getDerived().VisitAssertSharedLockAttr(A))
     909           0 :     return false;
     910             :   {
     911           0 :     Expr * *I = A->args_begin();
     912           0 :     Expr * *E = A->args_end();
     913           0 :     for (; I != E; ++I) {
     914           0 :       if (!getDerived().TraverseStmt(*I))
     915           0 :         return false;
     916           0 :     }
     917             :   }
     918           0 :   return true;
     919           0 : }
     920             : 
     921             : template <typename Derived>
     922             : bool VISITORCLASS<Derived>::TraverseAssumeAlignedAttr(AssumeAlignedAttr *A) {
     923           0 :   if (!getDerived().VisitAttr(A))
     924           0 :     return false;
     925           0 :   if (!getDerived().VisitAssumeAlignedAttr(A))
     926           0 :     return false;
     927           0 :   if (!getDerived().TraverseStmt(A->getAlignment()))
     928           0 :     return false;
     929           0 :   if (!getDerived().TraverseStmt(A->getOffset()))
     930           0 :     return false;
     931           0 :   return true;
     932           0 : }
     933             : 
     934             : template <typename Derived>
     935             : bool VISITORCLASS<Derived>::TraverseAvailabilityAttr(AvailabilityAttr *A) {
     936           0 :   if (!getDerived().VisitAttr(A))
     937           0 :     return false;
     938           0 :   if (!getDerived().VisitAvailabilityAttr(A))
     939           0 :     return false;
     940           0 :   return true;
     941           0 : }
     942             : 
     943             : template <typename Derived>
     944             : bool VISITORCLASS<Derived>::TraverseBlocksAttr(BlocksAttr *A) {
     945           0 :   if (!getDerived().VisitAttr(A))
     946           0 :     return false;
     947           0 :   if (!getDerived().VisitBlocksAttr(A))
     948           0 :     return false;
     949           0 :   return true;
     950           0 : }
     951             : 
     952             : template <typename Derived>
     953             : bool VISITORCLASS<Derived>::TraverseC11NoReturnAttr(C11NoReturnAttr *A) {
     954           0 :   if (!getDerived().VisitAttr(A))
     955           0 :     return false;
     956           0 :   if (!getDerived().VisitC11NoReturnAttr(A))
     957           0 :     return false;
     958           0 :   return true;
     959           0 : }
     960             : 
     961             : template <typename Derived>
     962             : bool VISITORCLASS<Derived>::TraverseCDeclAttr(CDeclAttr *A) {
     963           0 :   if (!getDerived().VisitAttr(A))
     964           0 :     return false;
     965           0 :   if (!getDerived().VisitCDeclAttr(A))
     966           0 :     return false;
     967           0 :   return true;
     968           0 : }
     969             : 
     970             : template <typename Derived>
     971             : bool VISITORCLASS<Derived>::TraverseCFAuditedTransferAttr(CFAuditedTransferAttr *A) {
     972           0 :   if (!getDerived().VisitAttr(A))
     973           0 :     return false;
     974           0 :   if (!getDerived().VisitCFAuditedTransferAttr(A))
     975           0 :     return false;
     976           0 :   return true;
     977           0 : }
     978             : 
     979             : template <typename Derived>
     980             : bool VISITORCLASS<Derived>::TraverseCFConsumedAttr(CFConsumedAttr *A) {
     981           0 :   if (!getDerived().VisitAttr(A))
     982           0 :     return false;
     983           0 :   if (!getDerived().VisitCFConsumedAttr(A))
     984           0 :     return false;
     985           0 :   return true;
     986           0 : }
     987             : 
     988             : template <typename Derived>
     989             : bool VISITORCLASS<Derived>::TraverseCFReturnsNotRetainedAttr(CFReturnsNotRetainedAttr *A) {
     990           0 :   if (!getDerived().VisitAttr(A))
     991           0 :     return false;
     992           0 :   if (!getDerived().VisitCFReturnsNotRetainedAttr(A))
     993           0 :     return false;
     994           0 :   return true;
     995           0 : }
     996             : 
     997             : template <typename Derived>
     998             : bool VISITORCLASS<Derived>::TraverseCFReturnsRetainedAttr(CFReturnsRetainedAttr *A) {
     999           0 :   if (!getDerived().VisitAttr(A))
    1000           0 :     return false;
    1001           0 :   if (!getDerived().VisitCFReturnsRetainedAttr(A))
    1002           0 :     return false;
    1003           0 :   return true;
    1004           0 : }
    1005             : 
    1006             : template <typename Derived>
    1007             : bool VISITORCLASS<Derived>::TraverseCFUnknownTransferAttr(CFUnknownTransferAttr *A) {
    1008           0 :   if (!getDerived().VisitAttr(A))
    1009           0 :     return false;
    1010           0 :   if (!getDerived().VisitCFUnknownTransferAttr(A))
    1011           0 :     return false;
    1012           0 :   return true;
    1013           0 : }
    1014             : 
    1015             : template <typename Derived>
    1016             : bool VISITORCLASS<Derived>::TraverseCUDAConstantAttr(CUDAConstantAttr *A) {
    1017           0 :   if (!getDerived().VisitAttr(A))
    1018           0 :     return false;
    1019           0 :   if (!getDerived().VisitCUDAConstantAttr(A))
    1020           0 :     return false;
    1021           0 :   return true;
    1022           0 : }
    1023             : 
    1024             : template <typename Derived>
    1025             : bool VISITORCLASS<Derived>::TraverseCUDADeviceAttr(CUDADeviceAttr *A) {
    1026           0 :   if (!getDerived().VisitAttr(A))
    1027           0 :     return false;
    1028           0 :   if (!getDerived().VisitCUDADeviceAttr(A))
    1029           0 :     return false;
    1030           0 :   return true;
    1031           0 : }
    1032             : 
    1033             : template <typename Derived>
    1034             : bool VISITORCLASS<Derived>::TraverseCUDAGlobalAttr(CUDAGlobalAttr *A) {
    1035           0 :   if (!getDerived().VisitAttr(A))
    1036           0 :     return false;
    1037           0 :   if (!getDerived().VisitCUDAGlobalAttr(A))
    1038           0 :     return false;
    1039           0 :   return true;
    1040           0 : }
    1041             : 
    1042             : template <typename Derived>
    1043             : bool VISITORCLASS<Derived>::TraverseCUDAHostAttr(CUDAHostAttr *A) {
    1044           0 :   if (!getDerived().VisitAttr(A))
    1045           0 :     return false;
    1046           0 :   if (!getDerived().VisitCUDAHostAttr(A))
    1047           0 :     return false;
    1048           0 :   return true;
    1049           0 : }
    1050             : 
    1051             : template <typename Derived>
    1052             : bool VISITORCLASS<Derived>::TraverseCUDAInvalidTargetAttr(CUDAInvalidTargetAttr *A) {
    1053           0 :   if (!getDerived().VisitAttr(A))
    1054           0 :     return false;
    1055           0 :   if (!getDerived().VisitCUDAInvalidTargetAttr(A))
    1056           0 :     return false;
    1057           0 :   return true;
    1058           0 : }
    1059             : 
    1060             : template <typename Derived>
    1061             : bool VISITORCLASS<Derived>::TraverseCUDALaunchBoundsAttr(CUDALaunchBoundsAttr *A) {
    1062           0 :   if (!getDerived().VisitAttr(A))
    1063           0 :     return false;
    1064           0 :   if (!getDerived().VisitCUDALaunchBoundsAttr(A))
    1065           0 :     return false;
    1066           0 :   if (!getDerived().TraverseStmt(A->getMaxThreads()))
    1067           0 :     return false;
    1068           0 :   if (!getDerived().TraverseStmt(A->getMinBlocks()))
    1069           0 :     return false;
    1070           0 :   return true;
    1071           0 : }
    1072             : 
    1073             : template <typename Derived>
    1074             : bool VISITORCLASS<Derived>::TraverseCUDASharedAttr(CUDASharedAttr *A) {
    1075           0 :   if (!getDerived().VisitAttr(A))
    1076           0 :     return false;
    1077           0 :   if (!getDerived().VisitCUDASharedAttr(A))
    1078           0 :     return false;
    1079           0 :   return true;
    1080           0 : }
    1081             : 
    1082             : template <typename Derived>
    1083             : bool VISITORCLASS<Derived>::TraverseCXX11NoReturnAttr(CXX11NoReturnAttr *A) {
    1084           0 :   if (!getDerived().VisitAttr(A))
    1085           0 :     return false;
    1086           0 :   if (!getDerived().VisitCXX11NoReturnAttr(A))
    1087           0 :     return false;
    1088           0 :   return true;
    1089           0 : }
    1090             : 
    1091             : template <typename Derived>
    1092             : bool VISITORCLASS<Derived>::TraverseCallableWhenAttr(CallableWhenAttr *A) {
    1093           0 :   if (!getDerived().VisitAttr(A))
    1094           0 :     return false;
    1095           0 :   if (!getDerived().VisitCallableWhenAttr(A))
    1096           0 :     return false;
    1097           0 :   return true;
    1098           0 : }
    1099             : 
    1100             : template <typename Derived>
    1101             : bool VISITORCLASS<Derived>::TraverseCapabilityAttr(CapabilityAttr *A) {
    1102           0 :   if (!getDerived().VisitAttr(A))
    1103           0 :     return false;
    1104           0 :   if (!getDerived().VisitCapabilityAttr(A))
    1105           0 :     return false;
    1106           0 :   return true;
    1107           0 : }
    1108             : 
    1109             : template <typename Derived>
    1110             : bool VISITORCLASS<Derived>::TraverseCapturedRecordAttr(CapturedRecordAttr *A) {
    1111           0 :   if (!getDerived().VisitAttr(A))
    1112           0 :     return false;
    1113           0 :   if (!getDerived().VisitCapturedRecordAttr(A))
    1114           0 :     return false;
    1115           0 :   return true;
    1116           0 : }
    1117             : 
    1118             : template <typename Derived>
    1119             : bool VISITORCLASS<Derived>::TraverseCarriesDependencyAttr(CarriesDependencyAttr *A) {
    1120           0 :   if (!getDerived().VisitAttr(A))
    1121           0 :     return false;
    1122           0 :   if (!getDerived().VisitCarriesDependencyAttr(A))
    1123           0 :     return false;
    1124           0 :   return true;
    1125           0 : }
    1126             : 
    1127             : template <typename Derived>
    1128             : bool VISITORCLASS<Derived>::TraverseCleanupAttr(CleanupAttr *A) {
    1129           0 :   if (!getDerived().VisitAttr(A))
    1130           0 :     return false;
    1131           0 :   if (!getDerived().VisitCleanupAttr(A))
    1132           0 :     return false;
    1133           0 :   return true;
    1134           0 : }
    1135             : 
    1136             : template <typename Derived>
    1137             : bool VISITORCLASS<Derived>::TraverseColdAttr(ColdAttr *A) {
    1138           0 :   if (!getDerived().VisitAttr(A))
    1139           0 :     return false;
    1140           0 :   if (!getDerived().VisitColdAttr(A))
    1141           0 :     return false;
    1142           0 :   return true;
    1143           0 : }
    1144             : 
    1145             : template <typename Derived>
    1146             : bool VISITORCLASS<Derived>::TraverseCommonAttr(CommonAttr *A) {
    1147           0 :   if (!getDerived().VisitAttr(A))
    1148           0 :     return false;
    1149           0 :   if (!getDerived().VisitCommonAttr(A))
    1150           0 :     return false;
    1151           0 :   return true;
    1152           0 : }
    1153             : 
    1154             : template <typename Derived>
    1155             : bool VISITORCLASS<Derived>::TraverseConstAttr(ConstAttr *A) {
    1156           0 :   if (!getDerived().VisitAttr(A))
    1157           0 :     return false;
    1158           0 :   if (!getDerived().VisitConstAttr(A))
    1159           0 :     return false;
    1160           0 :   return true;
    1161           0 : }
    1162             : 
    1163             : template <typename Derived>
    1164             : bool VISITORCLASS<Derived>::TraverseConstructorAttr(ConstructorAttr *A) {
    1165           0 :   if (!getDerived().VisitAttr(A))
    1166           0 :     return false;
    1167           0 :   if (!getDerived().VisitConstructorAttr(A))
    1168           0 :     return false;
    1169           0 :   return true;
    1170           0 : }
    1171             : 
    1172             : template <typename Derived>
    1173             : bool VISITORCLASS<Derived>::TraverseConsumableAttr(ConsumableAttr *A) {
    1174           0 :   if (!getDerived().VisitAttr(A))
    1175           0 :     return false;
    1176           0 :   if (!getDerived().VisitConsumableAttr(A))
    1177           0 :     return false;
    1178           0 :   return true;
    1179           0 : }
    1180             : 
    1181             : template <typename Derived>
    1182             : bool VISITORCLASS<Derived>::TraverseConsumableAutoCastAttr(ConsumableAutoCastAttr *A) {
    1183           0 :   if (!getDerived().VisitAttr(A))
    1184           0 :     return false;
    1185           0 :   if (!getDerived().VisitConsumableAutoCastAttr(A))
    1186           0 :     return false;
    1187           0 :   return true;
    1188           0 : }
    1189             : 
    1190             : template <typename Derived>
    1191             : bool VISITORCLASS<Derived>::TraverseConsumableSetOnReadAttr(ConsumableSetOnReadAttr *A) {
    1192           0 :   if (!getDerived().VisitAttr(A))
    1193           0 :     return false;
    1194           0 :   if (!getDerived().VisitConsumableSetOnReadAttr(A))
    1195           0 :     return false;
    1196           0 :   return true;
    1197           0 : }
    1198             : 
    1199             : template <typename Derived>
    1200             : bool VISITORCLASS<Derived>::TraverseDLLExportAttr(DLLExportAttr *A) {
    1201           0 :   if (!getDerived().VisitAttr(A))
    1202           0 :     return false;
    1203           0 :   if (!getDerived().VisitDLLExportAttr(A))
    1204           0 :     return false;
    1205           0 :   return true;
    1206           0 : }
    1207             : 
    1208             : template <typename Derived>
    1209             : bool VISITORCLASS<Derived>::TraverseDLLImportAttr(DLLImportAttr *A) {
    1210           0 :   if (!getDerived().VisitAttr(A))
    1211           0 :     return false;
    1212           0 :   if (!getDerived().VisitDLLImportAttr(A))
    1213           0 :     return false;
    1214           0 :   return true;
    1215           0 : }
    1216             : 
    1217             : template <typename Derived>
    1218             : bool VISITORCLASS<Derived>::TraverseDeprecatedAttr(DeprecatedAttr *A) {
    1219           0 :   if (!getDerived().VisitAttr(A))
    1220           0 :     return false;
    1221           0 :   if (!getDerived().VisitDeprecatedAttr(A))
    1222           0 :     return false;
    1223           0 :   return true;
    1224           0 : }
    1225             : 
    1226             : template <typename Derived>
    1227             : bool VISITORCLASS<Derived>::TraverseDestructorAttr(DestructorAttr *A) {
    1228           0 :   if (!getDerived().VisitAttr(A))
    1229           0 :     return false;
    1230           0 :   if (!getDerived().VisitDestructorAttr(A))
    1231           0 :     return false;
    1232           0 :   return true;
    1233           0 : }
    1234             : 
    1235             : template <typename Derived>
    1236             : bool VISITORCLASS<Derived>::TraverseEnableIfAttr(EnableIfAttr *A) {
    1237           0 :   if (!getDerived().VisitAttr(A))
    1238           0 :     return false;
    1239           0 :   if (!getDerived().VisitEnableIfAttr(A))
    1240           0 :     return false;
    1241           0 :   if (!getDerived().TraverseStmt(A->getCond()))
    1242           0 :     return false;
    1243           0 :   return true;
    1244           0 : }
    1245             : 
    1246             : template <typename Derived>
    1247             : bool VISITORCLASS<Derived>::TraverseExclusiveTrylockFunctionAttr(ExclusiveTrylockFunctionAttr *A) {
    1248           0 :   if (!getDerived().VisitAttr(A))
    1249           0 :     return false;
    1250           0 :   if (!getDerived().VisitExclusiveTrylockFunctionAttr(A))
    1251           0 :     return false;
    1252           0 :   if (!getDerived().TraverseStmt(A->getSuccessValue()))
    1253           0 :     return false;
    1254             :   {
    1255           0 :     Expr * *I = A->args_begin();
    1256           0 :     Expr * *E = A->args_end();
    1257           0 :     for (; I != E; ++I) {
    1258           0 :       if (!getDerived().TraverseStmt(*I))
    1259           0 :         return false;
    1260           0 :     }
    1261             :   }
    1262           0 :   return true;
    1263           0 : }
    1264             : 
    1265             : template <typename Derived>
    1266             : bool VISITORCLASS<Derived>::TraverseFallThroughAttr(FallThroughAttr *A) {
    1267           0 :   if (!getDerived().VisitAttr(A))
    1268           0 :     return false;
    1269           0 :   if (!getDerived().VisitFallThroughAttr(A))
    1270           0 :     return false;
    1271           0 :   return true;
    1272           0 : }
    1273             : 
    1274             : template <typename Derived>
    1275             : bool VISITORCLASS<Derived>::TraverseFastCallAttr(FastCallAttr *A) {
    1276           0 :   if (!getDerived().VisitAttr(A))
    1277           0 :     return false;
    1278           0 :   if (!getDerived().VisitFastCallAttr(A))
    1279           0 :     return false;
    1280           0 :   return true;
    1281           0 : }
    1282             : 
    1283             : template <typename Derived>
    1284             : bool VISITORCLASS<Derived>::TraverseFinalAttr(FinalAttr *A) {
    1285           0 :   if (!getDerived().VisitAttr(A))
    1286           0 :     return false;
    1287           0 :   if (!getDerived().VisitFinalAttr(A))
    1288           0 :     return false;
    1289           0 :   return true;
    1290           0 : }
    1291             : 
    1292             : template <typename Derived>
    1293             : bool VISITORCLASS<Derived>::TraverseFlagEnumAttr(FlagEnumAttr *A) {
    1294           0 :   if (!getDerived().VisitAttr(A))
    1295           0 :     return false;
    1296           0 :   if (!getDerived().VisitFlagEnumAttr(A))
    1297           0 :     return false;
    1298           0 :   return true;
    1299           0 : }
    1300             : 
    1301             : template <typename Derived>
    1302             : bool VISITORCLASS<Derived>::TraverseFlattenAttr(FlattenAttr *A) {
    1303           0 :   if (!getDerived().VisitAttr(A))
    1304           0 :     return false;
    1305           0 :   if (!getDerived().VisitFlattenAttr(A))
    1306           0 :     return false;
    1307           0 :   return true;
    1308           0 : }
    1309             : 
    1310             : template <typename Derived>
    1311             : bool VISITORCLASS<Derived>::TraverseFormatAttr(FormatAttr *A) {
    1312           0 :   if (!getDerived().VisitAttr(A))
    1313           0 :     return false;
    1314           0 :   if (!getDerived().VisitFormatAttr(A))
    1315           0 :     return false;
    1316           0 :   return true;
    1317           0 : }
    1318             : 
    1319             : template <typename Derived>
    1320             : bool VISITORCLASS<Derived>::TraverseFormatArgAttr(FormatArgAttr *A) {
    1321           0 :   if (!getDerived().VisitAttr(A))
    1322           0 :     return false;
    1323           0 :   if (!getDerived().VisitFormatArgAttr(A))
    1324           0 :     return false;
    1325           0 :   return true;
    1326           0 : }
    1327             : 
    1328             : template <typename Derived>
    1329             : bool VISITORCLASS<Derived>::TraverseGNUInlineAttr(GNUInlineAttr *A) {
    1330           0 :   if (!getDerived().VisitAttr(A))
    1331           0 :     return false;
    1332           0 :   if (!getDerived().VisitGNUInlineAttr(A))
    1333           0 :     return false;
    1334           0 :   return true;
    1335           0 : }
    1336             : 
    1337             : template <typename Derived>
    1338             : bool VISITORCLASS<Derived>::TraverseGuardedByAttr(GuardedByAttr *A) {
    1339           0 :   if (!getDerived().VisitAttr(A))
    1340           0 :     return false;
    1341           0 :   if (!getDerived().VisitGuardedByAttr(A))
    1342           0 :     return false;
    1343           0 :   if (!getDerived().TraverseStmt(A->getArg()))
    1344           0 :     return false;
    1345           0 :   return true;
    1346           0 : }
    1347             : 
    1348             : template <typename Derived>
    1349             : bool VISITORCLASS<Derived>::TraverseGuardedVarAttr(GuardedVarAttr *A) {
    1350           0 :   if (!getDerived().VisitAttr(A))
    1351           0 :     return false;
    1352           0 :   if (!getDerived().VisitGuardedVarAttr(A))
    1353           0 :     return false;
    1354           0 :   return true;
    1355           0 : }
    1356             : 
    1357             : template <typename Derived>
    1358             : bool VISITORCLASS<Derived>::TraverseHotAttr(HotAttr *A) {
    1359           0 :   if (!getDerived().VisitAttr(A))
    1360           0 :     return false;
    1361           0 :   if (!getDerived().VisitHotAttr(A))
    1362           0 :     return false;
    1363           0 :   return true;
    1364           0 : }
    1365             : 
    1366             : template <typename Derived>
    1367             : bool VISITORCLASS<Derived>::TraverseIBActionAttr(IBActionAttr *A) {
    1368           0 :   if (!getDerived().VisitAttr(A))
    1369           0 :     return false;
    1370           0 :   if (!getDerived().VisitIBActionAttr(A))
    1371           0 :     return false;
    1372           0 :   return true;
    1373           0 : }
    1374             : 
    1375             : template <typename Derived>
    1376             : bool VISITORCLASS<Derived>::TraverseIBOutletAttr(IBOutletAttr *A) {
    1377           0 :   if (!getDerived().VisitAttr(A))
    1378           0 :     return false;
    1379           0 :   if (!getDerived().VisitIBOutletAttr(A))
    1380           0 :     return false;
    1381           0 :   return true;
    1382           0 : }
    1383             : 
    1384             : template <typename Derived>
    1385             : bool VISITORCLASS<Derived>::TraverseIBOutletCollectionAttr(IBOutletCollectionAttr *A) {
    1386           0 :   if (!getDerived().VisitAttr(A))
    1387           0 :     return false;
    1388           0 :   if (!getDerived().VisitIBOutletCollectionAttr(A))
    1389           0 :     return false;
    1390           0 :   return true;
    1391           0 : }
    1392             : 
    1393             : template <typename Derived>
    1394             : bool VISITORCLASS<Derived>::TraverseInitPriorityAttr(InitPriorityAttr *A) {
    1395           0 :   if (!getDerived().VisitAttr(A))
    1396           0 :     return false;
    1397           0 :   if (!getDerived().VisitInitPriorityAttr(A))
    1398           0 :     return false;
    1399           0 :   return true;
    1400           0 : }
    1401             : 
    1402             : template <typename Derived>
    1403             : bool VISITORCLASS<Derived>::TraverseInitSegAttr(InitSegAttr *A) {
    1404           0 :   if (!getDerived().VisitAttr(A))
    1405           0 :     return false;
    1406           0 :   if (!getDerived().VisitInitSegAttr(A))
    1407           0 :     return false;
    1408           0 :   return true;
    1409           0 : }
    1410             : 
    1411             : template <typename Derived>
    1412             : bool VISITORCLASS<Derived>::TraverseIntelOclBiccAttr(IntelOclBiccAttr *A) {
    1413           0 :   if (!getDerived().VisitAttr(A))
    1414           0 :     return false;
    1415           0 :   if (!getDerived().VisitIntelOclBiccAttr(A))
    1416           0 :     return false;
    1417           0 :   return true;
    1418           0 : }
    1419             : 
    1420             : template <typename Derived>
    1421             : bool VISITORCLASS<Derived>::TraverseLockReturnedAttr(LockReturnedAttr *A) {
    1422           0 :   if (!getDerived().VisitAttr(A))
    1423           0 :     return false;
    1424           0 :   if (!getDerived().VisitLockReturnedAttr(A))
    1425           0 :     return false;
    1426           0 :   if (!getDerived().TraverseStmt(A->getArg()))
    1427           0 :     return false;
    1428           0 :   return true;
    1429           0 : }
    1430             : 
    1431             : template <typename Derived>
    1432             : bool VISITORCLASS<Derived>::TraverseLocksExcludedAttr(LocksExcludedAttr *A) {
    1433           0 :   if (!getDerived().VisitAttr(A))
    1434           0 :     return false;
    1435           0 :   if (!getDerived().VisitLocksExcludedAttr(A))
    1436           0 :     return false;
    1437             :   {
    1438           0 :     Expr * *I = A->args_begin();
    1439           0 :     Expr * *E = A->args_end();
    1440           0 :     for (; I != E; ++I) {
    1441           0 :       if (!getDerived().TraverseStmt(*I))
    1442           0 :         return false;
    1443           0 :     }
    1444             :   }
    1445           0 :   return true;
    1446           0 : }
    1447             : 
    1448             : template <typename Derived>
    1449             : bool VISITORCLASS<Derived>::TraverseLoopHintAttr(LoopHintAttr *A) {
    1450           0 :   if (!getDerived().VisitAttr(A))
    1451           0 :     return false;
    1452           0 :   if (!getDerived().VisitLoopHintAttr(A))
    1453           0 :     return false;
    1454           0 :   if (!getDerived().TraverseStmt(A->getValue()))
    1455           0 :     return false;
    1456           0 :   return true;
    1457           0 : }
    1458             : 
    1459             : template <typename Derived>
    1460             : bool VISITORCLASS<Derived>::TraverseMSABIAttr(MSABIAttr *A) {
    1461           0 :   if (!getDerived().VisitAttr(A))
    1462           0 :     return false;
    1463           0 :   if (!getDerived().VisitMSABIAttr(A))
    1464           0 :     return false;
    1465           0 :   return true;
    1466           0 : }
    1467             : 
    1468             : template <typename Derived>
    1469             : bool VISITORCLASS<Derived>::TraverseMSInheritanceAttr(MSInheritanceAttr *A) {
    1470           0 :   if (!getDerived().VisitAttr(A))
    1471           0 :     return false;
    1472           0 :   if (!getDerived().VisitMSInheritanceAttr(A))
    1473           0 :     return false;
    1474           0 :   return true;
    1475           0 : }
    1476             : 
    1477             : template <typename Derived>
    1478             : bool VISITORCLASS<Derived>::TraverseMSNoVTableAttr(MSNoVTableAttr *A) {
    1479           0 :   if (!getDerived().VisitAttr(A))
    1480           0 :     return false;
    1481           0 :   if (!getDerived().VisitMSNoVTableAttr(A))
    1482           0 :     return false;
    1483           0 :   return true;
    1484           0 : }
    1485             : 
    1486             : template <typename Derived>
    1487             : bool VISITORCLASS<Derived>::TraverseMSP430InterruptAttr(MSP430InterruptAttr *A) {
    1488           0 :   if (!getDerived().VisitAttr(A))
    1489           0 :     return false;
    1490           0 :   if (!getDerived().VisitMSP430InterruptAttr(A))
    1491           0 :     return false;
    1492           0 :   return true;
    1493           0 : }
    1494             : 
    1495             : template <typename Derived>
    1496             : bool VISITORCLASS<Derived>::TraverseMSStructAttr(MSStructAttr *A) {
    1497           0 :   if (!getDerived().VisitAttr(A))
    1498           0 :     return false;
    1499           0 :   if (!getDerived().VisitMSStructAttr(A))
    1500           0 :     return false;
    1501           0 :   return true;
    1502           0 : }
    1503             : 
    1504             : template <typename Derived>
    1505             : bool VISITORCLASS<Derived>::TraverseMSVtorDispAttr(MSVtorDispAttr *A) {
    1506           0 :   if (!getDerived().VisitAttr(A))
    1507           0 :     return false;
    1508           0 :   if (!getDerived().VisitMSVtorDispAttr(A))
    1509           0 :     return false;
    1510           0 :   return true;
    1511           0 : }
    1512             : 
    1513             : template <typename Derived>
    1514             : bool VISITORCLASS<Derived>::TraverseMaxFieldAlignmentAttr(MaxFieldAlignmentAttr *A) {
    1515           0 :   if (!getDerived().VisitAttr(A))
    1516           0 :     return false;
    1517           0 :   if (!getDerived().VisitMaxFieldAlignmentAttr(A))
    1518           0 :     return false;
    1519           0 :   return true;
    1520           0 : }
    1521             : 
    1522             : template <typename Derived>
    1523             : bool VISITORCLASS<Derived>::TraverseMayAliasAttr(MayAliasAttr *A) {
    1524           0 :   if (!getDerived().VisitAttr(A))
    1525           0 :     return false;
    1526           0 :   if (!getDerived().VisitMayAliasAttr(A))
    1527           0 :     return false;
    1528           0 :   return true;
    1529           0 : }
    1530             : 
    1531             : template <typename Derived>
    1532             : bool VISITORCLASS<Derived>::TraverseMinSizeAttr(MinSizeAttr *A) {
    1533           0 :   if (!getDerived().VisitAttr(A))
    1534           0 :     return false;
    1535           0 :   if (!getDerived().VisitMinSizeAttr(A))
    1536           0 :     return false;
    1537           0 :   return true;
    1538           0 : }
    1539             : 
    1540             : template <typename Derived>
    1541             : bool VISITORCLASS<Derived>::TraverseMips16Attr(Mips16Attr *A) {
    1542           0 :   if (!getDerived().VisitAttr(A))
    1543           0 :     return false;
    1544           0 :   if (!getDerived().VisitMips16Attr(A))
    1545           0 :     return false;
    1546           0 :   return true;
    1547           0 : }
    1548             : 
    1549             : template <typename Derived>
    1550             : bool VISITORCLASS<Derived>::TraverseModeAttr(ModeAttr *A) {
    1551           0 :   if (!getDerived().VisitAttr(A))
    1552           0 :     return false;
    1553           0 :   if (!getDerived().VisitModeAttr(A))
    1554           0 :     return false;
    1555           0 :   return true;
    1556           0 : }
    1557             : 
    1558             : template <typename Derived>
    1559             : bool VISITORCLASS<Derived>::TraverseNSConsumedAttr(NSConsumedAttr *A) {
    1560           0 :   if (!getDerived().VisitAttr(A))
    1561           0 :     return false;
    1562           0 :   if (!getDerived().VisitNSConsumedAttr(A))
    1563           0 :     return false;
    1564           0 :   return true;
    1565           0 : }
    1566             : 
    1567             : template <typename Derived>
    1568             : bool VISITORCLASS<Derived>::TraverseNSConsumesSelfAttr(NSConsumesSelfAttr *A) {
    1569           0 :   if (!getDerived().VisitAttr(A))
    1570           0 :     return false;
    1571           0 :   if (!getDerived().VisitNSConsumesSelfAttr(A))
    1572           0 :     return false;
    1573           0 :   return true;
    1574           0 : }
    1575             : 
    1576             : template <typename Derived>
    1577             : bool VISITORCLASS<Derived>::TraverseNSReturnsAutoreleasedAttr(NSReturnsAutoreleasedAttr *A) {
    1578           0 :   if (!getDerived().VisitAttr(A))
    1579           0 :     return false;
    1580           0 :   if (!getDerived().VisitNSReturnsAutoreleasedAttr(A))
    1581           0 :     return false;
    1582           0 :   return true;
    1583           0 : }
    1584             : 
    1585             : template <typename Derived>
    1586             : bool VISITORCLASS<Derived>::TraverseNSReturnsNotRetainedAttr(NSReturnsNotRetainedAttr *A) {
    1587           0 :   if (!getDerived().VisitAttr(A))
    1588           0 :     return false;
    1589           0 :   if (!getDerived().VisitNSReturnsNotRetainedAttr(A))
    1590           0 :     return false;
    1591           0 :   return true;
    1592           0 : }
    1593             : 
    1594             : template <typename Derived>
    1595             : bool VISITORCLASS<Derived>::TraverseNSReturnsRetainedAttr(NSReturnsRetainedAttr *A) {
    1596           0 :   if (!getDerived().VisitAttr(A))
    1597           0 :     return false;
    1598           0 :   if (!getDerived().VisitNSReturnsRetainedAttr(A))
    1599           0 :     return false;
    1600           0 :   return true;
    1601           0 : }
    1602             : 
    1603             : template <typename Derived>
    1604             : bool VISITORCLASS<Derived>::TraverseNakedAttr(NakedAttr *A) {
    1605           0 :   if (!getDerived().VisitAttr(A))
    1606           0 :     return false;
    1607           0 :   if (!getDerived().VisitNakedAttr(A))
    1608           0 :     return false;
    1609           0 :   return true;
    1610           0 : }
    1611             : 
    1612             : template <typename Derived>
    1613             : bool VISITORCLASS<Derived>::TraverseNoCommonAttr(NoCommonAttr *A) {
    1614           0 :   if (!getDerived().VisitAttr(A))
    1615           0 :     return false;
    1616           0 :   if (!getDerived().VisitNoCommonAttr(A))
    1617           0 :     return false;
    1618           0 :   return true;
    1619           0 : }
    1620             : 
    1621             : template <typename Derived>
    1622             : bool VISITORCLASS<Derived>::TraverseNoDebugAttr(NoDebugAttr *A) {
    1623           0 :   if (!getDerived().VisitAttr(A))
    1624           0 :     return false;
    1625           0 :   if (!getDerived().VisitNoDebugAttr(A))
    1626           0 :     return false;
    1627           0 :   return true;
    1628           0 : }
    1629             : 
    1630             : template <typename Derived>
    1631             : bool VISITORCLASS<Derived>::TraverseNoDuplicateAttr(NoDuplicateAttr *A) {
    1632           0 :   if (!getDerived().VisitAttr(A))
    1633           0 :     return false;
    1634           0 :   if (!getDerived().VisitNoDuplicateAttr(A))
    1635           0 :     return false;
    1636           0 :   return true;
    1637           0 : }
    1638             : 
    1639             : template <typename Derived>
    1640             : bool VISITORCLASS<Derived>::TraverseNoInlineAttr(NoInlineAttr *A) {
    1641           0 :   if (!getDerived().VisitAttr(A))
    1642           0 :     return false;
    1643           0 :   if (!getDerived().VisitNoInlineAttr(A))
    1644           0 :     return false;
    1645           0 :   return true;
    1646           0 : }
    1647             : 
    1648             : template <typename Derived>
    1649             : bool VISITORCLASS<Derived>::TraverseNoInstrumentFunctionAttr(NoInstrumentFunctionAttr *A) {
    1650           0 :   if (!getDerived().VisitAttr(A))
    1651           0 :     return false;
    1652           0 :   if (!getDerived().VisitNoInstrumentFunctionAttr(A))
    1653           0 :     return false;
    1654           0 :   return true;
    1655           0 : }
    1656             : 
    1657             : template <typename Derived>
    1658             : bool VISITORCLASS<Derived>::TraverseNoMips16Attr(NoMips16Attr *A) {
    1659           0 :   if (!getDerived().VisitAttr(A))
    1660           0 :     return false;
    1661           0 :   if (!getDerived().VisitNoMips16Attr(A))
    1662           0 :     return false;
    1663           0 :   return true;
    1664           0 : }
    1665             : 
    1666             : template <typename Derived>
    1667             : bool VISITORCLASS<Derived>::TraverseNoReturnAttr(NoReturnAttr *A) {
    1668           0 :   if (!getDerived().VisitAttr(A))
    1669           0 :     return false;
    1670           0 :   if (!getDerived().VisitNoReturnAttr(A))
    1671           0 :     return false;
    1672           0 :   return true;
    1673           0 : }
    1674             : 
    1675             : template <typename Derived>
    1676             : bool VISITORCLASS<Derived>::TraverseNoSanitizeAttr(NoSanitizeAttr *A) {
    1677           0 :   if (!getDerived().VisitAttr(A))
    1678           0 :     return false;
    1679           0 :   if (!getDerived().VisitNoSanitizeAttr(A))
    1680           0 :     return false;
    1681           0 :   return true;
    1682           0 : }
    1683             : 
    1684             : template <typename Derived>
    1685             : bool VISITORCLASS<Derived>::TraverseNoSplitStackAttr(NoSplitStackAttr *A) {
    1686           0 :   if (!getDerived().VisitAttr(A))
    1687           0 :     return false;
    1688           0 :   if (!getDerived().VisitNoSplitStackAttr(A))
    1689           0 :     return false;
    1690           0 :   return true;
    1691           0 : }
    1692             : 
    1693             : template <typename Derived>
    1694             : bool VISITORCLASS<Derived>::TraverseNoThreadSafetyAnalysisAttr(NoThreadSafetyAnalysisAttr *A) {
    1695           0 :   if (!getDerived().VisitAttr(A))
    1696           0 :     return false;
    1697           0 :   if (!getDerived().VisitNoThreadSafetyAnalysisAttr(A))
    1698           0 :     return false;
    1699           0 :   return true;
    1700           0 : }
    1701             : 
    1702             : template <typename Derived>
    1703             : bool VISITORCLASS<Derived>::TraverseNoThrowAttr(NoThrowAttr *A) {
    1704           0 :   if (!getDerived().VisitAttr(A))
    1705           0 :     return false;
    1706           0 :   if (!getDerived().VisitNoThrowAttr(A))
    1707           0 :     return false;
    1708           0 :   return true;
    1709           0 : }
    1710             : 
    1711             : template <typename Derived>
    1712             : bool VISITORCLASS<Derived>::TraverseNonNullAttr(NonNullAttr *A) {
    1713           0 :   if (!getDerived().VisitAttr(A))
    1714           0 :     return false;
    1715           0 :   if (!getDerived().VisitNonNullAttr(A))
    1716           0 :     return false;
    1717           0 :   return true;
    1718           0 : }
    1719             : 
    1720             : template <typename Derived>
    1721             : bool VISITORCLASS<Derived>::TraverseOMPThreadPrivateDeclAttr(OMPThreadPrivateDeclAttr *A) {
    1722           0 :   if (!getDerived().VisitAttr(A))
    1723           0 :     return false;
    1724           0 :   if (!getDerived().VisitOMPThreadPrivateDeclAttr(A))
    1725           0 :     return false;
    1726           0 :   return true;
    1727           0 : }
    1728             : 
    1729             : template <typename Derived>
    1730             : bool VISITORCLASS<Derived>::TraverseObjCBoxableAttr(ObjCBoxableAttr *A) {
    1731           0 :   if (!getDerived().VisitAttr(A))
    1732           0 :     return false;
    1733           0 :   if (!getDerived().VisitObjCBoxableAttr(A))
    1734           0 :     return false;
    1735           0 :   return true;
    1736           0 : }
    1737             : 
    1738             : template <typename Derived>
    1739             : bool VISITORCLASS<Derived>::TraverseObjCBridgeAttr(ObjCBridgeAttr *A) {
    1740           0 :   if (!getDerived().VisitAttr(A))
    1741           0 :     return false;
    1742           0 :   if (!getDerived().VisitObjCBridgeAttr(A))
    1743           0 :     return false;
    1744           0 :   return true;
    1745           0 : }
    1746             : 
    1747             : template <typename Derived>
    1748             : bool VISITORCLASS<Derived>::TraverseObjCBridgeMutableAttr(ObjCBridgeMutableAttr *A) {
    1749           0 :   if (!getDerived().VisitAttr(A))
    1750           0 :     return false;
    1751           0 :   if (!getDerived().VisitObjCBridgeMutableAttr(A))
    1752           0 :     return false;
    1753           0 :   return true;
    1754           0 : }
    1755             : 
    1756             : template <typename Derived>
    1757             : bool VISITORCLASS<Derived>::TraverseObjCBridgeRelatedAttr(ObjCBridgeRelatedAttr *A) {
    1758           0 :   if (!getDerived().VisitAttr(A))
    1759           0 :     return false;
    1760           0 :   if (!getDerived().VisitObjCBridgeRelatedAttr(A))
    1761           0 :     return false;
    1762           0 :   return true;
    1763           0 : }
    1764             : 
    1765             : template <typename Derived>
    1766             : bool VISITORCLASS<Derived>::TraverseObjCDesignatedInitializerAttr(ObjCDesignatedInitializerAttr *A) {
    1767           0 :   if (!getDerived().VisitAttr(A))
    1768           0 :     return false;
    1769           0 :   if (!getDerived().VisitObjCDesignatedInitializerAttr(A))
    1770           0 :     return false;
    1771           0 :   return true;
    1772           0 : }
    1773             : 
    1774             : template <typename Derived>
    1775             : bool VISITORCLASS<Derived>::TraverseObjCExceptionAttr(ObjCExceptionAttr *A) {
    1776           0 :   if (!getDerived().VisitAttr(A))
    1777           0 :     return false;
    1778           0 :   if (!getDerived().VisitObjCExceptionAttr(A))
    1779           0 :     return false;
    1780           0 :   return true;
    1781           0 : }
    1782             : 
    1783             : template <typename Derived>
    1784             : bool VISITORCLASS<Derived>::TraverseObjCExplicitProtocolImplAttr(ObjCExplicitProtocolImplAttr *A) {
    1785           0 :   if (!getDerived().VisitAttr(A))
    1786           0 :     return false;
    1787           0 :   if (!getDerived().VisitObjCExplicitProtocolImplAttr(A))
    1788           0 :     return false;
    1789           0 :   return true;
    1790           0 : }
    1791             : 
    1792             : template <typename Derived>
    1793             : bool VISITORCLASS<Derived>::TraverseObjCIndependentClassAttr(ObjCIndependentClassAttr *A) {
    1794           0 :   if (!getDerived().VisitAttr(A))
    1795           0 :     return false;
    1796           0 :   if (!getDerived().VisitObjCIndependentClassAttr(A))
    1797           0 :     return false;
    1798           0 :   return true;
    1799           0 : }
    1800             : 
    1801             : template <typename Derived>
    1802             : bool VISITORCLASS<Derived>::TraverseObjCMethodFamilyAttr(ObjCMethodFamilyAttr *A) {
    1803           0 :   if (!getDerived().VisitAttr(A))
    1804           0 :     return false;
    1805           0 :   if (!getDerived().VisitObjCMethodFamilyAttr(A))
    1806           0 :     return false;
    1807           0 :   return true;
    1808           0 : }
    1809             : 
    1810             : template <typename Derived>
    1811             : bool VISITORCLASS<Derived>::TraverseObjCNSObjectAttr(ObjCNSObjectAttr *A) {
    1812           0 :   if (!getDerived().VisitAttr(A))
    1813           0 :     return false;
    1814           0 :   if (!getDerived().VisitObjCNSObjectAttr(A))
    1815           0 :     return false;
    1816           0 :   return true;
    1817           0 : }
    1818             : 
    1819             : template <typename Derived>
    1820             : bool VISITORCLASS<Derived>::TraverseObjCPreciseLifetimeAttr(ObjCPreciseLifetimeAttr *A) {
    1821           0 :   if (!getDerived().VisitAttr(A))
    1822           0 :     return false;
    1823           0 :   if (!getDerived().VisitObjCPreciseLifetimeAttr(A))
    1824           0 :     return false;
    1825           0 :   return true;
    1826           0 : }
    1827             : 
    1828             : template <typename Derived>
    1829             : bool VISITORCLASS<Derived>::TraverseObjCRequiresPropertyDefsAttr(ObjCRequiresPropertyDefsAttr *A) {
    1830           0 :   if (!getDerived().VisitAttr(A))
    1831           0 :     return false;
    1832           0 :   if (!getDerived().VisitObjCRequiresPropertyDefsAttr(A))
    1833           0 :     return false;
    1834           0 :   return true;
    1835           0 : }
    1836             : 
    1837             : template <typename Derived>
    1838             : bool VISITORCLASS<Derived>::TraverseObjCRequiresSuperAttr(ObjCRequiresSuperAttr *A) {
    1839           0 :   if (!getDerived().VisitAttr(A))
    1840           0 :     return false;
    1841           0 :   if (!getDerived().VisitObjCRequiresSuperAttr(A))
    1842           0 :     return false;
    1843           0 :   return true;
    1844           0 : }
    1845             : 
    1846             : template <typename Derived>
    1847             : bool VISITORCLASS<Derived>::TraverseObjCReturnsInnerPointerAttr(ObjCReturnsInnerPointerAttr *A) {
    1848           0 :   if (!getDerived().VisitAttr(A))
    1849           0 :     return false;
    1850           0 :   if (!getDerived().VisitObjCReturnsInnerPointerAttr(A))
    1851           0 :     return false;
    1852           0 :   return true;
    1853           0 : }
    1854             : 
    1855             : template <typename Derived>
    1856             : bool VISITORCLASS<Derived>::TraverseObjCRootClassAttr(ObjCRootClassAttr *A) {
    1857           0 :   if (!getDerived().VisitAttr(A))
    1858           0 :     return false;
    1859           0 :   if (!getDerived().VisitObjCRootClassAttr(A))
    1860           0 :     return false;
    1861           0 :   return true;
    1862           0 : }
    1863             : 
    1864             : template <typename Derived>
    1865             : bool VISITORCLASS<Derived>::TraverseObjCRuntimeNameAttr(ObjCRuntimeNameAttr *A) {
    1866           0 :   if (!getDerived().VisitAttr(A))
    1867           0 :     return false;
    1868           0 :   if (!getDerived().VisitObjCRuntimeNameAttr(A))
    1869           0 :     return false;
    1870           0 :   return true;
    1871           0 : }
    1872             : 
    1873             : template <typename Derived>
    1874             : bool VISITORCLASS<Derived>::TraverseOpenCLImageAccessAttr(OpenCLImageAccessAttr *A) {
    1875           0 :   if (!getDerived().VisitAttr(A))
    1876           0 :     return false;
    1877           0 :   if (!getDerived().VisitOpenCLImageAccessAttr(A))
    1878           0 :     return false;
    1879           0 :   return true;
    1880           0 : }
    1881             : 
    1882             : template <typename Derived>
    1883             : bool VISITORCLASS<Derived>::TraverseOpenCLKernelAttr(OpenCLKernelAttr *A) {
    1884           0 :   if (!getDerived().VisitAttr(A))
    1885           0 :     return false;
    1886           0 :   if (!getDerived().VisitOpenCLKernelAttr(A))
    1887           0 :     return false;
    1888           0 :   return true;
    1889           0 : }
    1890             : 
    1891             : template <typename Derived>
    1892             : bool VISITORCLASS<Derived>::TraverseOptimizeNoneAttr(OptimizeNoneAttr *A) {
    1893           0 :   if (!getDerived().VisitAttr(A))
    1894           0 :     return false;
    1895           0 :   if (!getDerived().VisitOptimizeNoneAttr(A))
    1896           0 :     return false;
    1897           0 :   return true;
    1898           0 : }
    1899             : 
    1900             : template <typename Derived>
    1901             : bool VISITORCLASS<Derived>::TraverseOverloadableAttr(OverloadableAttr *A) {
    1902           0 :   if (!getDerived().VisitAttr(A))
    1903           0 :     return false;
    1904           0 :   if (!getDerived().VisitOverloadableAttr(A))
    1905           0 :     return false;
    1906           0 :   return true;
    1907           0 : }
    1908             : 
    1909             : template <typename Derived>
    1910             : bool VISITORCLASS<Derived>::TraverseOverrideAttr(OverrideAttr *A) {
    1911           0 :   if (!getDerived().VisitAttr(A))
    1912           0 :     return false;
    1913           0 :   if (!getDerived().VisitOverrideAttr(A))
    1914           0 :     return false;
    1915           0 :   return true;
    1916           0 : }
    1917             : 
    1918             : template <typename Derived>
    1919             : bool VISITORCLASS<Derived>::TraverseOwnershipAttr(OwnershipAttr *A) {
    1920           0 :   if (!getDerived().VisitAttr(A))
    1921           0 :     return false;
    1922           0 :   if (!getDerived().VisitOwnershipAttr(A))
    1923           0 :     return false;
    1924           0 :   return true;
    1925           0 : }
    1926             : 
    1927             : template <typename Derived>
    1928             : bool VISITORCLASS<Derived>::TraversePackedAttr(PackedAttr *A) {
    1929           0 :   if (!getDerived().VisitAttr(A))
    1930           0 :     return false;
    1931           0 :   if (!getDerived().VisitPackedAttr(A))
    1932           0 :     return false;
    1933           0 :   return true;
    1934           0 : }
    1935             : 
    1936             : template <typename Derived>
    1937             : bool VISITORCLASS<Derived>::TraverseParamTypestateAttr(ParamTypestateAttr *A) {
    1938           0 :   if (!getDerived().VisitAttr(A))
    1939           0 :     return false;
    1940           0 :   if (!getDerived().VisitParamTypestateAttr(A))
    1941           0 :     return false;
    1942           0 :   return true;
    1943           0 : }
    1944             : 
    1945             : template <typename Derived>
    1946             : bool VISITORCLASS<Derived>::TraversePascalAttr(PascalAttr *A) {
    1947           0 :   if (!getDerived().VisitAttr(A))
    1948           0 :     return false;
    1949           0 :   if (!getDerived().VisitPascalAttr(A))
    1950           0 :     return false;
    1951           0 :   return true;
    1952           0 : }
    1953             : 
    1954             : template <typename Derived>
    1955             : bool VISITORCLASS<Derived>::TraversePcsAttr(PcsAttr *A) {
    1956           0 :   if (!getDerived().VisitAttr(A))
    1957           0 :     return false;
    1958           0 :   if (!getDerived().VisitPcsAttr(A))
    1959           0 :     return false;
    1960           0 :   return true;
    1961           0 : }
    1962             : 
    1963             : template <typename Derived>
    1964             : bool VISITORCLASS<Derived>::TraversePtGuardedByAttr(PtGuardedByAttr *A) {
    1965           0 :   if (!getDerived().VisitAttr(A))
    1966           0 :     return false;
    1967           0 :   if (!getDerived().VisitPtGuardedByAttr(A))
    1968           0 :     return false;
    1969           0 :   if (!getDerived().TraverseStmt(A->getArg()))
    1970           0 :     return false;
    1971           0 :   return true;
    1972           0 : }
    1973             : 
    1974             : template <typename Derived>
    1975             : bool VISITORCLASS<Derived>::TraversePtGuardedVarAttr(PtGuardedVarAttr *A) {
    1976           0 :   if (!getDerived().VisitAttr(A))
    1977           0 :     return false;
    1978           0 :   if (!getDerived().VisitPtGuardedVarAttr(A))
    1979           0 :     return false;
    1980           0 :   return true;
    1981           0 : }
    1982             : 
    1983             : template <typename Derived>
    1984             : bool VISITORCLASS<Derived>::TraversePureAttr(PureAttr *A) {
    1985           0 :   if (!getDerived().VisitAttr(A))
    1986           0 :     return false;
    1987           0 :   if (!getDerived().VisitPureAttr(A))
    1988           0 :     return false;
    1989           0 :   return true;
    1990           0 : }
    1991             : 
    1992             : template <typename Derived>
    1993             : bool VISITORCLASS<Derived>::TraverseReleaseCapabilityAttr(ReleaseCapabilityAttr *A) {
    1994           0 :   if (!getDerived().VisitAttr(A))
    1995           0 :     return false;
    1996           0 :   if (!getDerived().VisitReleaseCapabilityAttr(A))
    1997           0 :     return false;
    1998             :   {
    1999           0 :     Expr * *I = A->args_begin();
    2000           0 :     Expr * *E = A->args_end();
    2001           0 :     for (; I != E; ++I) {
    2002           0 :       if (!getDerived().TraverseStmt(*I))
    2003           0 :         return false;
    2004           0 :     }
    2005             :   }
    2006           0 :   return true;
    2007           0 : }
    2008             : 
    2009             : template <typename Derived>
    2010             : bool VISITORCLASS<Derived>::TraverseReqdWorkGroupSizeAttr(ReqdWorkGroupSizeAttr *A) {
    2011           0 :   if (!getDerived().VisitAttr(A))
    2012           0 :     return false;
    2013           0 :   if (!getDerived().VisitReqdWorkGroupSizeAttr(A))
    2014           0 :     return false;
    2015           0 :   return true;
    2016           0 : }
    2017             : 
    2018             : template <typename Derived>
    2019             : bool VISITORCLASS<Derived>::TraverseRequiresCapabilityAttr(RequiresCapabilityAttr *A) {
    2020           0 :   if (!getDerived().VisitAttr(A))
    2021           0 :     return false;
    2022           0 :   if (!getDerived().VisitRequiresCapabilityAttr(A))
    2023           0 :     return false;
    2024             :   {
    2025           0 :     Expr * *I = A->args_begin();
    2026           0 :     Expr * *E = A->args_end();
    2027           0 :     for (; I != E; ++I) {
    2028           0 :       if (!getDerived().TraverseStmt(*I))
    2029           0 :         return false;
    2030           0 :     }
    2031             :   }
    2032           0 :   return true;
    2033           0 : }
    2034             : 
    2035             : template <typename Derived>
    2036             : bool VISITORCLASS<Derived>::TraverseRestrictAttr(RestrictAttr *A) {
    2037           0 :   if (!getDerived().VisitAttr(A))
    2038           0 :     return false;
    2039           0 :   if (!getDerived().VisitRestrictAttr(A))
    2040           0 :     return false;
    2041           0 :   return true;
    2042           0 : }
    2043             : 
    2044             : template <typename Derived>
    2045             : bool VISITORCLASS<Derived>::TraverseReturnTypestateAttr(ReturnTypestateAttr *A) {
    2046           0 :   if (!getDerived().VisitAttr(A))
    2047           0 :     return false;
    2048           0 :   if (!getDerived().VisitReturnTypestateAttr(A))
    2049           0 :     return false;
    2050           0 :   return true;
    2051           0 : }
    2052             : 
    2053             : template <typename Derived>
    2054             : bool VISITORCLASS<Derived>::TraverseReturnsNonNullAttr(ReturnsNonNullAttr *A) {
    2055           0 :   if (!getDerived().VisitAttr(A))
    2056           0 :     return false;
    2057           0 :   if (!getDerived().VisitReturnsNonNullAttr(A))
    2058           0 :     return false;
    2059           0 :   return true;
    2060           0 : }
    2061             : 
    2062             : template <typename Derived>
    2063             : bool VISITORCLASS<Derived>::TraverseReturnsTwiceAttr(ReturnsTwiceAttr *A) {
    2064           0 :   if (!getDerived().VisitAttr(A))
    2065           0 :     return false;
    2066           0 :   if (!getDerived().VisitReturnsTwiceAttr(A))
    2067           0 :     return false;
    2068           0 :   return true;
    2069           0 : }
    2070             : 
    2071             : template <typename Derived>
    2072             : bool VISITORCLASS<Derived>::TraverseScopedLockableAttr(ScopedLockableAttr *A) {
    2073           0 :   if (!getDerived().VisitAttr(A))
    2074           0 :     return false;
    2075           0 :   if (!getDerived().VisitScopedLockableAttr(A))
    2076           0 :     return false;
    2077           0 :   return true;
    2078           0 : }
    2079             : 
    2080             : template <typename Derived>
    2081             : bool VISITORCLASS<Derived>::TraverseSectionAttr(SectionAttr *A) {
    2082           0 :   if (!getDerived().VisitAttr(A))
    2083           0 :     return false;
    2084           0 :   if (!getDerived().VisitSectionAttr(A))
    2085           0 :     return false;
    2086           0 :   return true;
    2087           0 : }
    2088             : 
    2089             : template <typename Derived>
    2090             : bool VISITORCLASS<Derived>::TraverseSelectAnyAttr(SelectAnyAttr *A) {
    2091           0 :   if (!getDerived().VisitAttr(A))
    2092           0 :     return false;
    2093           0 :   if (!getDerived().VisitSelectAnyAttr(A))
    2094           0 :     return false;
    2095           0 :   return true;
    2096           0 : }
    2097             : 
    2098             : template <typename Derived>
    2099             : bool VISITORCLASS<Derived>::TraverseSentinelAttr(SentinelAttr *A) {
    2100           0 :   if (!getDerived().VisitAttr(A))
    2101           0 :     return false;
    2102           0 :   if (!getDerived().VisitSentinelAttr(A))
    2103           0 :     return false;
    2104           0 :   return true;
    2105           0 : }
    2106             : 
    2107             : template <typename Derived>
    2108             : bool VISITORCLASS<Derived>::TraverseSetTypestateAttr(SetTypestateAttr *A) {
    2109           0 :   if (!getDerived().VisitAttr(A))
    2110           0 :     return false;
    2111           0 :   if (!getDerived().VisitSetTypestateAttr(A))
    2112           0 :     return false;
    2113           0 :   return true;
    2114           0 : }
    2115             : 
    2116             : template <typename Derived>
    2117             : bool VISITORCLASS<Derived>::TraverseSharedTrylockFunctionAttr(SharedTrylockFunctionAttr *A) {
    2118           0 :   if (!getDerived().VisitAttr(A))
    2119           0 :     return false;
    2120           0 :   if (!getDerived().VisitSharedTrylockFunctionAttr(A))
    2121           0 :     return false;
    2122           0 :   if (!getDerived().TraverseStmt(A->getSuccessValue()))
    2123           0 :     return false;
    2124             :   {
    2125           0 :     Expr * *I = A->args_begin();
    2126           0 :     Expr * *E = A->args_end();
    2127           0 :     for (; I != E; ++I) {
    2128           0 :       if (!getDerived().TraverseStmt(*I))
    2129           0 :         return false;
    2130           0 :     }
    2131             :   }
    2132           0 :   return true;
    2133           0 : }
    2134             : 
    2135             : template <typename Derived>
    2136             : bool VISITORCLASS<Derived>::TraverseStdCallAttr(StdCallAttr *A) {
    2137           0 :   if (!getDerived().VisitAttr(A))
    2138           0 :     return false;
    2139           0 :   if (!getDerived().VisitStdCallAttr(A))
    2140           0 :     return false;
    2141           0 :   return true;
    2142           0 : }
    2143             : 
    2144             : template <typename Derived>
    2145             : bool VISITORCLASS<Derived>::TraverseSysVABIAttr(SysVABIAttr *A) {
    2146           0 :   if (!getDerived().VisitAttr(A))
    2147           0 :     return false;
    2148           0 :   if (!getDerived().VisitSysVABIAttr(A))
    2149           0 :     return false;
    2150           0 :   return true;
    2151           0 : }
    2152             : 
    2153             : template <typename Derived>
    2154             : bool VISITORCLASS<Derived>::TraverseTLSModelAttr(TLSModelAttr *A) {
    2155           0 :   if (!getDerived().VisitAttr(A))
    2156           0 :     return false;
    2157           0 :   if (!getDerived().VisitTLSModelAttr(A))
    2158           0 :     return false;
    2159           0 :   return true;
    2160           0 : }
    2161             : 
    2162             : template <typename Derived>
    2163             : bool VISITORCLASS<Derived>::TraverseTargetAttr(TargetAttr *A) {
    2164           0 :   if (!getDerived().VisitAttr(A))
    2165           0 :     return false;
    2166           0 :   if (!getDerived().VisitTargetAttr(A))
    2167           0 :     return false;
    2168           0 :   return true;
    2169           0 : }
    2170             : 
    2171             : template <typename Derived>
    2172             : bool VISITORCLASS<Derived>::TraverseTestTypestateAttr(TestTypestateAttr *A) {
    2173           0 :   if (!getDerived().VisitAttr(A))
    2174           0 :     return false;
    2175           0 :   if (!getDerived().VisitTestTypestateAttr(A))
    2176           0 :     return false;
    2177           0 :   return true;
    2178           0 : }
    2179             : 
    2180             : template <typename Derived>
    2181             : bool VISITORCLASS<Derived>::TraverseThisCallAttr(ThisCallAttr *A) {
    2182           0 :   if (!getDerived().VisitAttr(A))
    2183           0 :     return false;
    2184           0 :   if (!getDerived().VisitThisCallAttr(A))
    2185           0 :     return false;
    2186           0 :   return true;
    2187           0 : }
    2188             : 
    2189             : template <typename Derived>
    2190             : bool VISITORCLASS<Derived>::TraverseThreadAttr(ThreadAttr *A) {
    2191           0 :   if (!getDerived().VisitAttr(A))
    2192           0 :     return false;
    2193           0 :   if (!getDerived().VisitThreadAttr(A))
    2194           0 :     return false;
    2195           0 :   return true;
    2196           0 : }
    2197             : 
    2198             : template <typename Derived>
    2199             : bool VISITORCLASS<Derived>::TraverseTransparentUnionAttr(TransparentUnionAttr *A) {
    2200           0 :   if (!getDerived().VisitAttr(A))
    2201           0 :     return false;
    2202           0 :   if (!getDerived().VisitTransparentUnionAttr(A))
    2203           0 :     return false;
    2204           0 :   return true;
    2205           0 : }
    2206             : 
    2207             : template <typename Derived>
    2208             : bool VISITORCLASS<Derived>::TraverseTryAcquireCapabilityAttr(TryAcquireCapabilityAttr *A) {
    2209           0 :   if (!getDerived().VisitAttr(A))
    2210           0 :     return false;
    2211           0 :   if (!getDerived().VisitTryAcquireCapabilityAttr(A))
    2212           0 :     return false;
    2213           0 :   if (!getDerived().TraverseStmt(A->getSuccessValue()))
    2214           0 :     return false;
    2215             :   {
    2216           0 :     Expr * *I = A->args_begin();
    2217           0 :     Expr * *E = A->args_end();
    2218           0 :     for (; I != E; ++I) {
    2219           0 :       if (!getDerived().TraverseStmt(*I))
    2220           0 :         return false;
    2221           0 :     }
    2222             :   }
    2223           0 :   return true;
    2224           0 : }
    2225             : 
    2226             : template <typename Derived>
    2227             : bool VISITORCLASS<Derived>::TraverseTypeTagForDatatypeAttr(TypeTagForDatatypeAttr *A) {
    2228           0 :   if (!getDerived().VisitAttr(A))
    2229           0 :     return false;
    2230           0 :   if (!getDerived().VisitTypeTagForDatatypeAttr(A))
    2231           0 :     return false;
    2232           0 :   return true;
    2233           0 : }
    2234             : 
    2235             : template <typename Derived>
    2236             : bool VISITORCLASS<Derived>::TraverseTypeVisibilityAttr(TypeVisibilityAttr *A) {
    2237           0 :   if (!getDerived().VisitAttr(A))
    2238           0 :     return false;
    2239           0 :   if (!getDerived().VisitTypeVisibilityAttr(A))
    2240           0 :     return false;
    2241           0 :   return true;
    2242           0 : }
    2243             : 
    2244             : template <typename Derived>
    2245             : bool VISITORCLASS<Derived>::TraverseUnavailableAttr(UnavailableAttr *A) {
    2246           0 :   if (!getDerived().VisitAttr(A))
    2247           0 :     return false;
    2248           0 :   if (!getDerived().VisitUnavailableAttr(A))
    2249           0 :     return false;
    2250           0 :   return true;
    2251           0 : }
    2252             : 
    2253             : template <typename Derived>
    2254             : bool VISITORCLASS<Derived>::TraverseUnusedAttr(UnusedAttr *A) {
    2255           0 :   if (!getDerived().VisitAttr(A))
    2256           0 :     return false;
    2257           0 :   if (!getDerived().VisitUnusedAttr(A))
    2258           0 :     return false;
    2259           0 :   return true;
    2260           0 : }
    2261             : 
    2262             : template <typename Derived>
    2263             : bool VISITORCLASS<Derived>::TraverseUsedAttr(UsedAttr *A) {
    2264           0 :   if (!getDerived().VisitAttr(A))
    2265           0 :     return false;
    2266           0 :   if (!getDerived().VisitUsedAttr(A))
    2267           0 :     return false;
    2268           0 :   return true;
    2269           0 : }
    2270             : 
    2271             : template <typename Derived>
    2272             : bool VISITORCLASS<Derived>::TraverseUuidAttr(UuidAttr *A) {
    2273           0 :   if (!getDerived().VisitAttr(A))
    2274           0 :     return false;
    2275           0 :   if (!getDerived().VisitUuidAttr(A))
    2276           0 :     return false;
    2277           0 :   return true;
    2278           0 : }
    2279             : 
    2280             : template <typename Derived>
    2281             : bool VISITORCLASS<Derived>::TraverseVecReturnAttr(VecReturnAttr *A) {
    2282           0 :   if (!getDerived().VisitAttr(A))
    2283           0 :     return false;
    2284           0 :   if (!getDerived().VisitVecReturnAttr(A))
    2285           0 :     return false;
    2286           0 :   return true;
    2287           0 : }
    2288             : 
    2289             : template <typename Derived>
    2290             : bool VISITORCLASS<Derived>::TraverseVecTypeHintAttr(VecTypeHintAttr *A) {
    2291           0 :   if (!getDerived().VisitAttr(A))
    2292           0 :     return false;
    2293           0 :   if (!getDerived().VisitVecTypeHintAttr(A))
    2294           0 :     return false;
    2295           0 :   return true;
    2296           0 : }
    2297             : 
    2298             : template <typename Derived>
    2299             : bool VISITORCLASS<Derived>::TraverseVectorCallAttr(VectorCallAttr *A) {
    2300           0 :   if (!getDerived().VisitAttr(A))
    2301           0 :     return false;
    2302           0 :   if (!getDerived().VisitVectorCallAttr(A))
    2303           0 :     return false;
    2304           0 :   return true;
    2305           0 : }
    2306             : 
    2307             : template <typename Derived>
    2308             : bool VISITORCLASS<Derived>::TraverseVisibilityAttr(VisibilityAttr *A) {
    2309           0 :   if (!getDerived().VisitAttr(A))
    2310           0 :     return false;
    2311           0 :   if (!getDerived().VisitVisibilityAttr(A))
    2312           0 :     return false;
    2313           0 :   return true;
    2314           0 : }
    2315             : 
    2316             : template <typename Derived>
    2317             : bool VISITORCLASS<Derived>::TraverseWarnUnusedAttr(WarnUnusedAttr *A) {
    2318           0 :   if (!getDerived().VisitAttr(A))
    2319           0 :     return false;
    2320           0 :   if (!getDerived().VisitWarnUnusedAttr(A))
    2321           0 :     return false;
    2322           0 :   return true;
    2323           0 : }
    2324             : 
    2325             : template <typename Derived>
    2326             : bool VISITORCLASS<Derived>::TraverseWarnUnusedResultAttr(WarnUnusedResultAttr *A) {
    2327           0 :   if (!getDerived().VisitAttr(A))
    2328           0 :     return false;
    2329           0 :   if (!getDerived().VisitWarnUnusedResultAttr(A))
    2330           0 :     return false;
    2331           0 :   return true;
    2332           0 : }
    2333             : 
    2334             : template <typename Derived>
    2335             : bool VISITORCLASS<Derived>::TraverseWeakAttr(WeakAttr *A) {
    2336           0 :   if (!getDerived().VisitAttr(A))
    2337           0 :     return false;
    2338           0 :   if (!getDerived().VisitWeakAttr(A))
    2339           0 :     return false;
    2340           0 :   return true;
    2341           0 : }
    2342             : 
    2343             : template <typename Derived>
    2344             : bool VISITORCLASS<Derived>::TraverseWeakImportAttr(WeakImportAttr *A) {
    2345           0 :   if (!getDerived().VisitAttr(A))
    2346           0 :     return false;
    2347           0 :   if (!getDerived().VisitWeakImportAttr(A))
    2348           0 :     return false;
    2349           0 :   return true;
    2350           0 : }
    2351             : 
    2352             : template <typename Derived>
    2353             : bool VISITORCLASS<Derived>::TraverseWeakRefAttr(WeakRefAttr *A) {
    2354           0 :   if (!getDerived().VisitAttr(A))
    2355           0 :     return false;
    2356           0 :   if (!getDerived().VisitWeakRefAttr(A))
    2357           0 :     return false;
    2358           0 :   return true;
    2359           0 : }
    2360             : 
    2361             : template <typename Derived>
    2362             : bool VISITORCLASS<Derived>::TraverseWorkGroupSizeHintAttr(WorkGroupSizeHintAttr *A) {
    2363           0 :   if (!getDerived().VisitAttr(A))
    2364           0 :     return false;
    2365           0 :   if (!getDerived().VisitWorkGroupSizeHintAttr(A))
    2366           0 :     return false;
    2367           0 :   return true;
    2368           0 : }
    2369             : 
    2370             : template <typename Derived>
    2371             : bool VISITORCLASS<Derived>::TraverseX86ForceAlignArgPointerAttr(X86ForceAlignArgPointerAttr *A) {
    2372           0 :   if (!getDerived().VisitAttr(A))
    2373           0 :     return false;
    2374           0 :   if (!getDerived().VisitX86ForceAlignArgPointerAttr(A))
    2375           0 :     return false;
    2376           0 :   return true;
    2377           0 : }
    2378             : 
    2379             : template <typename Derived>
    2380             : bool VISITORCLASS<Derived>::TraverseAttr(Attr *A) {
    2381           0 :   if (!A)
    2382           0 :     return true;
    2383             : 
    2384           0 :   switch (A->getKind()) {
    2385             :     default:
    2386           0 :       return true;
    2387             :     case attr::AMDGPUNumSGPR:
    2388           0 :       return getDerived().TraverseAMDGPUNumSGPRAttr(cast<AMDGPUNumSGPRAttr>(A));
    2389             :     case attr::AMDGPUNumVGPR:
    2390           0 :       return getDerived().TraverseAMDGPUNumVGPRAttr(cast<AMDGPUNumVGPRAttr>(A));
    2391             :     case attr::ARMInterrupt:
    2392           0 :       return getDerived().TraverseARMInterruptAttr(cast<ARMInterruptAttr>(A));
    2393             :     case attr::AcquireCapability:
    2394           0 :       return getDerived().TraverseAcquireCapabilityAttr(cast<AcquireCapabilityAttr>(A));
    2395             :     case attr::AcquiredAfter:
    2396           0 :       return getDerived().TraverseAcquiredAfterAttr(cast<AcquiredAfterAttr>(A));
    2397             :     case attr::AcquiredBefore:
    2398           0 :       return getDerived().TraverseAcquiredBeforeAttr(cast<AcquiredBeforeAttr>(A));
    2399             :     case attr::Alias:
    2400           0 :       return getDerived().TraverseAliasAttr(cast<AliasAttr>(A));
    2401             :     case attr::AlignMac68k:
    2402           0 :       return getDerived().TraverseAlignMac68kAttr(cast<AlignMac68kAttr>(A));
    2403             :     case attr::AlignValue:
    2404           0 :       return getDerived().TraverseAlignValueAttr(cast<AlignValueAttr>(A));
    2405             :     case attr::Aligned:
    2406           0 :       return getDerived().TraverseAlignedAttr(cast<AlignedAttr>(A));
    2407             :     case attr::AlwaysInline:
    2408           0 :       return getDerived().TraverseAlwaysInlineAttr(cast<AlwaysInlineAttr>(A));
    2409             :     case attr::AnalyzerNoReturn:
    2410           0 :       return getDerived().TraverseAnalyzerNoReturnAttr(cast<AnalyzerNoReturnAttr>(A));
    2411             :     case attr::Annotate:
    2412           0 :       return getDerived().TraverseAnnotateAttr(cast<AnnotateAttr>(A));
    2413             :     case attr::ArcWeakrefUnavailable:
    2414           0 :       return getDerived().TraverseArcWeakrefUnavailableAttr(cast<ArcWeakrefUnavailableAttr>(A));
    2415             :     case attr::ArgumentWithTypeTag:
    2416           0 :       return getDerived().TraverseArgumentWithTypeTagAttr(cast<ArgumentWithTypeTagAttr>(A));
    2417             :     case attr::AsmLabel:
    2418           0 :       return getDerived().TraverseAsmLabelAttr(cast<AsmLabelAttr>(A));
    2419             :     case attr::AssertCapability:
    2420           0 :       return getDerived().TraverseAssertCapabilityAttr(cast<AssertCapabilityAttr>(A));
    2421             :     case attr::AssertExclusiveLock:
    2422           0 :       return getDerived().TraverseAssertExclusiveLockAttr(cast<AssertExclusiveLockAttr>(A));
    2423             :     case attr::AssertSharedLock:
    2424           0 :       return getDerived().TraverseAssertSharedLockAttr(cast<AssertSharedLockAttr>(A));
    2425             :     case attr::AssumeAligned:
    2426           0 :       return getDerived().TraverseAssumeAlignedAttr(cast<AssumeAlignedAttr>(A));
    2427             :     case attr::Availability:
    2428           0 :       return getDerived().TraverseAvailabilityAttr(cast<AvailabilityAttr>(A));
    2429             :     case attr::Blocks:
    2430           0 :       return getDerived().TraverseBlocksAttr(cast<BlocksAttr>(A));
    2431             :     case attr::C11NoReturn:
    2432           0 :       return getDerived().TraverseC11NoReturnAttr(cast<C11NoReturnAttr>(A));
    2433             :     case attr::CDecl:
    2434           0 :       return getDerived().TraverseCDeclAttr(cast<CDeclAttr>(A));
    2435             :     case attr::CFAuditedTransfer:
    2436           0 :       return getDerived().TraverseCFAuditedTransferAttr(cast<CFAuditedTransferAttr>(A));
    2437             :     case attr::CFConsumed:
    2438           0 :       return getDerived().TraverseCFConsumedAttr(cast<CFConsumedAttr>(A));
    2439             :     case attr::CFReturnsNotRetained:
    2440           0 :       return getDerived().TraverseCFReturnsNotRetainedAttr(cast<CFReturnsNotRetainedAttr>(A));
    2441             :     case attr::CFReturnsRetained:
    2442           0 :       return getDerived().TraverseCFReturnsRetainedAttr(cast<CFReturnsRetainedAttr>(A));
    2443             :     case attr::CFUnknownTransfer:
    2444           0 :       return getDerived().TraverseCFUnknownTransferAttr(cast<CFUnknownTransferAttr>(A));
    2445             :     case attr::CUDAConstant:
    2446           0 :       return getDerived().TraverseCUDAConstantAttr(cast<CUDAConstantAttr>(A));
    2447             :     case attr::CUDADevice:
    2448           0 :       return getDerived().TraverseCUDADeviceAttr(cast<CUDADeviceAttr>(A));
    2449             :     case attr::CUDAGlobal:
    2450           0 :       return getDerived().TraverseCUDAGlobalAttr(cast<CUDAGlobalAttr>(A));
    2451             :     case attr::CUDAHost:
    2452           0 :       return getDerived().TraverseCUDAHostAttr(cast<CUDAHostAttr>(A));
    2453             :     case attr::CUDAInvalidTarget:
    2454           0 :       return getDerived().TraverseCUDAInvalidTargetAttr(cast<CUDAInvalidTargetAttr>(A));
    2455             :     case attr::CUDALaunchBounds:
    2456           0 :       return getDerived().TraverseCUDALaunchBoundsAttr(cast<CUDALaunchBoundsAttr>(A));
    2457             :     case attr::CUDAShared:
    2458           0 :       return getDerived().TraverseCUDASharedAttr(cast<CUDASharedAttr>(A));
    2459             :     case attr::CXX11NoReturn:
    2460           0 :       return getDerived().TraverseCXX11NoReturnAttr(cast<CXX11NoReturnAttr>(A));
    2461             :     case attr::CallableWhen:
    2462           0 :       return getDerived().TraverseCallableWhenAttr(cast<CallableWhenAttr>(A));
    2463             :     case attr::Capability:
    2464           0 :       return getDerived().TraverseCapabilityAttr(cast<CapabilityAttr>(A));
    2465             :     case attr::CapturedRecord:
    2466           0 :       return getDerived().TraverseCapturedRecordAttr(cast<CapturedRecordAttr>(A));
    2467             :     case attr::CarriesDependency:
    2468           0 :       return getDerived().TraverseCarriesDependencyAttr(cast<CarriesDependencyAttr>(A));
    2469             :     case attr::Cleanup:
    2470           0 :       return getDerived().TraverseCleanupAttr(cast<CleanupAttr>(A));
    2471             :     case attr::Cold:
    2472           0 :       return getDerived().TraverseColdAttr(cast<ColdAttr>(A));
    2473             :     case attr::Common:
    2474           0 :       return getDerived().TraverseCommonAttr(cast<CommonAttr>(A));
    2475             :     case attr::Const:
    2476           0 :       return getDerived().TraverseConstAttr(cast<ConstAttr>(A));
    2477             :     case attr::Constructor:
    2478           0 :       return getDerived().TraverseConstructorAttr(cast<ConstructorAttr>(A));
    2479             :     case attr::Consumable:
    2480           0 :       return getDerived().TraverseConsumableAttr(cast<ConsumableAttr>(A));
    2481             :     case attr::ConsumableAutoCast:
    2482           0 :       return getDerived().TraverseConsumableAutoCastAttr(cast<ConsumableAutoCastAttr>(A));
    2483             :     case attr::ConsumableSetOnRead:
    2484           0 :       return getDerived().TraverseConsumableSetOnReadAttr(cast<ConsumableSetOnReadAttr>(A));
    2485             :     case attr::DLLExport:
    2486           0 :       return getDerived().TraverseDLLExportAttr(cast<DLLExportAttr>(A));
    2487             :     case attr::DLLImport:
    2488           0 :       return getDerived().TraverseDLLImportAttr(cast<DLLImportAttr>(A));
    2489             :     case attr::Deprecated:
    2490           0 :       return getDerived().TraverseDeprecatedAttr(cast<DeprecatedAttr>(A));
    2491             :     case attr::Destructor:
    2492           0 :       return getDerived().TraverseDestructorAttr(cast<DestructorAttr>(A));
    2493             :     case attr::EnableIf:
    2494           0 :       return getDerived().TraverseEnableIfAttr(cast<EnableIfAttr>(A));
    2495             :     case attr::ExclusiveTrylockFunction:
    2496           0 :       return getDerived().TraverseExclusiveTrylockFunctionAttr(cast<ExclusiveTrylockFunctionAttr>(A));
    2497             :     case attr::FallThrough:
    2498           0 :       return getDerived().TraverseFallThroughAttr(cast<FallThroughAttr>(A));
    2499             :     case attr::FastCall:
    2500           0 :       return getDerived().TraverseFastCallAttr(cast<FastCallAttr>(A));
    2501             :     case attr::Final:
    2502           0 :       return getDerived().TraverseFinalAttr(cast<FinalAttr>(A));
    2503             :     case attr::FlagEnum:
    2504           0 :       return getDerived().TraverseFlagEnumAttr(cast<FlagEnumAttr>(A));
    2505             :     case attr::Flatten:
    2506           0 :       return getDerived().TraverseFlattenAttr(cast<FlattenAttr>(A));
    2507             :     case attr::Format:
    2508           0 :       return getDerived().TraverseFormatAttr(cast<FormatAttr>(A));
    2509             :     case attr::FormatArg:
    2510           0 :       return getDerived().TraverseFormatArgAttr(cast<FormatArgAttr>(A));
    2511             :     case attr::GNUInline:
    2512           0 :       return getDerived().TraverseGNUInlineAttr(cast<GNUInlineAttr>(A));
    2513             :     case attr::GuardedBy:
    2514           0 :       return getDerived().TraverseGuardedByAttr(cast<GuardedByAttr>(A));
    2515             :     case attr::GuardedVar:
    2516           0 :       return getDerived().TraverseGuardedVarAttr(cast<GuardedVarAttr>(A));
    2517             :     case attr::Hot:
    2518           0 :       return getDerived().TraverseHotAttr(cast<HotAttr>(A));
    2519             :     case attr::IBAction:
    2520           0 :       return getDerived().TraverseIBActionAttr(cast<IBActionAttr>(A));
    2521             :     case attr::IBOutlet:
    2522           0 :       return getDerived().TraverseIBOutletAttr(cast<IBOutletAttr>(A));
    2523             :     case attr::IBOutletCollection:
    2524           0 :       return getDerived().TraverseIBOutletCollectionAttr(cast<IBOutletCollectionAttr>(A));
    2525             :     case attr::InitPriority:
    2526           0 :       return getDerived().TraverseInitPriorityAttr(cast<InitPriorityAttr>(A));
    2527             :     case attr::InitSeg:
    2528           0 :       return getDerived().TraverseInitSegAttr(cast<InitSegAttr>(A));
    2529             :     case attr::IntelOclBicc:
    2530           0 :       return getDerived().TraverseIntelOclBiccAttr(cast<IntelOclBiccAttr>(A));
    2531             :     case attr::LockReturned:
    2532           0 :       return getDerived().TraverseLockReturnedAttr(cast<LockReturnedAttr>(A));
    2533             :     case attr::LocksExcluded:
    2534           0 :       return getDerived().TraverseLocksExcludedAttr(cast<LocksExcludedAttr>(A));
    2535             :     case attr::LoopHint:
    2536           0 :       return getDerived().TraverseLoopHintAttr(cast<LoopHintAttr>(A));
    2537             :     case attr::MSABI:
    2538           0 :       return getDerived().TraverseMSABIAttr(cast<MSABIAttr>(A));
    2539             :     case attr::MSInheritance:
    2540           0 :       return getDerived().TraverseMSInheritanceAttr(cast<MSInheritanceAttr>(A));
    2541             :     case attr::MSNoVTable:
    2542           0 :       return getDerived().TraverseMSNoVTableAttr(cast<MSNoVTableAttr>(A));
    2543             :     case attr::MSP430Interrupt:
    2544           0 :       return getDerived().TraverseMSP430InterruptAttr(cast<MSP430InterruptAttr>(A));
    2545             :     case attr::MSStruct:
    2546           0 :       return getDerived().TraverseMSStructAttr(cast<MSStructAttr>(A));
    2547             :     case attr::MSVtorDisp:
    2548           0 :       return getDerived().TraverseMSVtorDispAttr(cast<MSVtorDispAttr>(A));
    2549             :     case attr::MaxFieldAlignment:
    2550           0 :       return getDerived().TraverseMaxFieldAlignmentAttr(cast<MaxFieldAlignmentAttr>(A));
    2551             :     case attr::MayAlias:
    2552           0 :       return getDerived().TraverseMayAliasAttr(cast<MayAliasAttr>(A));
    2553             :     case attr::MinSize:
    2554           0 :       return getDerived().TraverseMinSizeAttr(cast<MinSizeAttr>(A));
    2555             :     case attr::Mips16:
    2556           0 :       return getDerived().TraverseMips16Attr(cast<Mips16Attr>(A));
    2557             :     case attr::Mode:
    2558           0 :       return getDerived().TraverseModeAttr(cast<ModeAttr>(A));
    2559             :     case attr::NSConsumed:
    2560           0 :       return getDerived().TraverseNSConsumedAttr(cast<NSConsumedAttr>(A));
    2561             :     case attr::NSConsumesSelf:
    2562           0 :       return getDerived().TraverseNSConsumesSelfAttr(cast<NSConsumesSelfAttr>(A));
    2563             :     case attr::NSReturnsAutoreleased:
    2564           0 :       return getDerived().TraverseNSReturnsAutoreleasedAttr(cast<NSReturnsAutoreleasedAttr>(A));
    2565             :     case attr::NSReturnsNotRetained:
    2566           0 :       return getDerived().TraverseNSReturnsNotRetainedAttr(cast<NSReturnsNotRetainedAttr>(A));
    2567             :     case attr::NSReturnsRetained:
    2568           0 :       return getDerived().TraverseNSReturnsRetainedAttr(cast<NSReturnsRetainedAttr>(A));
    2569             :     case attr::Naked:
    2570           0 :       return getDerived().TraverseNakedAttr(cast<NakedAttr>(A));
    2571             :     case attr::NoCommon:
    2572           0 :       return getDerived().TraverseNoCommonAttr(cast<NoCommonAttr>(A));
    2573             :     case attr::NoDebug:
    2574           0 :       return getDerived().TraverseNoDebugAttr(cast<NoDebugAttr>(A));
    2575             :     case attr::NoDuplicate:
    2576           0 :       return getDerived().TraverseNoDuplicateAttr(cast<NoDuplicateAttr>(A));
    2577             :     case attr::NoInline:
    2578           0 :       return getDerived().TraverseNoInlineAttr(cast<NoInlineAttr>(A));
    2579             :     case attr::NoInstrumentFunction:
    2580           0 :       return getDerived().TraverseNoInstrumentFunctionAttr(cast<NoInstrumentFunctionAttr>(A));
    2581             :     case attr::NoMips16:
    2582           0 :       return getDerived().TraverseNoMips16Attr(cast<NoMips16Attr>(A));
    2583             :     case attr::NoReturn:
    2584           0 :       return getDerived().TraverseNoReturnAttr(cast<NoReturnAttr>(A));
    2585             :     case attr::NoSanitize:
    2586           0 :       return getDerived().TraverseNoSanitizeAttr(cast<NoSanitizeAttr>(A));
    2587             :     case attr::NoSplitStack:
    2588           0 :       return getDerived().TraverseNoSplitStackAttr(cast<NoSplitStackAttr>(A));
    2589             :     case attr::NoThreadSafetyAnalysis:
    2590           0 :       return getDerived().TraverseNoThreadSafetyAnalysisAttr(cast<NoThreadSafetyAnalysisAttr>(A));
    2591             :     case attr::NoThrow:
    2592           0 :       return getDerived().TraverseNoThrowAttr(cast<NoThrowAttr>(A));
    2593             :     case attr::NonNull:
    2594           0 :       return getDerived().TraverseNonNullAttr(cast<NonNullAttr>(A));
    2595             :     case attr::OMPThreadPrivateDecl:
    2596           0 :       return getDerived().TraverseOMPThreadPrivateDeclAttr(cast<OMPThreadPrivateDeclAttr>(A));
    2597             :     case attr::ObjCBoxable:
    2598           0 :       return getDerived().TraverseObjCBoxableAttr(cast<ObjCBoxableAttr>(A));
    2599             :     case attr::ObjCBridge:
    2600           0 :       return getDerived().TraverseObjCBridgeAttr(cast<ObjCBridgeAttr>(A));
    2601             :     case attr::ObjCBridgeMutable:
    2602           0 :       return getDerived().TraverseObjCBridgeMutableAttr(cast<ObjCBridgeMutableAttr>(A));
    2603             :     case attr::ObjCBridgeRelated:
    2604           0 :       return getDerived().TraverseObjCBridgeRelatedAttr(cast<ObjCBridgeRelatedAttr>(A));
    2605             :     case attr::ObjCDesignatedInitializer:
    2606           0 :       return getDerived().TraverseObjCDesignatedInitializerAttr(cast<ObjCDesignatedInitializerAttr>(A));
    2607             :     case attr::ObjCException:
    2608           0 :       return getDerived().TraverseObjCExceptionAttr(cast<ObjCExceptionAttr>(A));
    2609             :     case attr::ObjCExplicitProtocolImpl:
    2610           0 :       return getDerived().TraverseObjCExplicitProtocolImplAttr(cast<ObjCExplicitProtocolImplAttr>(A));
    2611             :     case attr::ObjCIndependentClass:
    2612           0 :       return getDerived().TraverseObjCIndependentClassAttr(cast<ObjCIndependentClassAttr>(A));
    2613             :     case attr::ObjCMethodFamily:
    2614           0 :       return getDerived().TraverseObjCMethodFamilyAttr(cast<ObjCMethodFamilyAttr>(A));
    2615             :     case attr::ObjCNSObject:
    2616           0 :       return getDerived().TraverseObjCNSObjectAttr(cast<ObjCNSObjectAttr>(A));
    2617             :     case attr::ObjCPreciseLifetime:
    2618           0 :       return getDerived().TraverseObjCPreciseLifetimeAttr(cast<ObjCPreciseLifetimeAttr>(A));
    2619             :     case attr::ObjCRequiresPropertyDefs:
    2620           0 :       return getDerived().TraverseObjCRequiresPropertyDefsAttr(cast<ObjCRequiresPropertyDefsAttr>(A));
    2621             :     case attr::ObjCRequiresSuper:
    2622           0 :       return getDerived().TraverseObjCRequiresSuperAttr(cast<ObjCRequiresSuperAttr>(A));
    2623             :     case attr::ObjCReturnsInnerPointer:
    2624           0 :       return getDerived().TraverseObjCReturnsInnerPointerAttr(cast<ObjCReturnsInnerPointerAttr>(A));
    2625             :     case attr::ObjCRootClass:
    2626           0 :       return getDerived().TraverseObjCRootClassAttr(cast<ObjCRootClassAttr>(A));
    2627             :     case attr::ObjCRuntimeName:
    2628           0 :       return getDerived().TraverseObjCRuntimeNameAttr(cast<ObjCRuntimeNameAttr>(A));
    2629             :     case attr::OpenCLImageAccess:
    2630           0 :       return getDerived().TraverseOpenCLImageAccessAttr(cast<OpenCLImageAccessAttr>(A));
    2631             :     case attr::OpenCLKernel:
    2632           0 :       return getDerived().TraverseOpenCLKernelAttr(cast<OpenCLKernelAttr>(A));
    2633             :     case attr::OptimizeNone:
    2634           0 :       return getDerived().TraverseOptimizeNoneAttr(cast<OptimizeNoneAttr>(A));
    2635             :     case attr::Overloadable:
    2636           0 :       return getDerived().TraverseOverloadableAttr(cast<OverloadableAttr>(A));
    2637             :     case attr::Override:
    2638           0 :       return getDerived().TraverseOverrideAttr(cast<OverrideAttr>(A));
    2639             :     case attr::Ownership:
    2640           0 :       return getDerived().TraverseOwnershipAttr(cast<OwnershipAttr>(A));
    2641             :     case attr::Packed:
    2642           0 :       return getDerived().TraversePackedAttr(cast<PackedAttr>(A));
    2643             :     case attr::ParamTypestate:
    2644           0 :       return getDerived().TraverseParamTypestateAttr(cast<ParamTypestateAttr>(A));
    2645             :     case attr::Pascal:
    2646           0 :       return getDerived().TraversePascalAttr(cast<PascalAttr>(A));
    2647             :     case attr::Pcs:
    2648           0 :       return getDerived().TraversePcsAttr(cast<PcsAttr>(A));
    2649             :     case attr::PtGuardedBy:
    2650           0 :       return getDerived().TraversePtGuardedByAttr(cast<PtGuardedByAttr>(A));
    2651             :     case attr::PtGuardedVar:
    2652           0 :       return getDerived().TraversePtGuardedVarAttr(cast<PtGuardedVarAttr>(A));
    2653             :     case attr::Pure:
    2654           0 :       return getDerived().TraversePureAttr(cast<PureAttr>(A));
    2655             :     case attr::ReleaseCapability:
    2656           0 :       return getDerived().TraverseReleaseCapabilityAttr(cast<ReleaseCapabilityAttr>(A));
    2657             :     case attr::ReqdWorkGroupSize:
    2658           0 :       return getDerived().TraverseReqdWorkGroupSizeAttr(cast<ReqdWorkGroupSizeAttr>(A));
    2659             :     case attr::RequiresCapability:
    2660           0 :       return getDerived().TraverseRequiresCapabilityAttr(cast<RequiresCapabilityAttr>(A));
    2661             :     case attr::Restrict:
    2662           0 :       return getDerived().TraverseRestrictAttr(cast<RestrictAttr>(A));
    2663             :     case attr::ReturnTypestate:
    2664           0 :       return getDerived().TraverseReturnTypestateAttr(cast<ReturnTypestateAttr>(A));
    2665             :     case attr::ReturnsNonNull:
    2666           0 :       return getDerived().TraverseReturnsNonNullAttr(cast<ReturnsNonNullAttr>(A));
    2667             :     case attr::ReturnsTwice:
    2668           0 :       return getDerived().TraverseReturnsTwiceAttr(cast<ReturnsTwiceAttr>(A));
    2669             :     case attr::ScopedLockable:
    2670           0 :       return getDerived().TraverseScopedLockableAttr(cast<ScopedLockableAttr>(A));
    2671             :     case attr::Section:
    2672           0 :       return getDerived().TraverseSectionAttr(cast<SectionAttr>(A));
    2673             :     case attr::SelectAny:
    2674           0 :       return getDerived().TraverseSelectAnyAttr(cast<SelectAnyAttr>(A));
    2675             :     case attr::Sentinel:
    2676           0 :       return getDerived().TraverseSentinelAttr(cast<SentinelAttr>(A));
    2677             :     case attr::SetTypestate:
    2678           0 :       return getDerived().TraverseSetTypestateAttr(cast<SetTypestateAttr>(A));
    2679             :     case attr::SharedTrylockFunction:
    2680           0 :       return getDerived().TraverseSharedTrylockFunctionAttr(cast<SharedTrylockFunctionAttr>(A));
    2681             :     case attr::StdCall:
    2682           0 :       return getDerived().TraverseStdCallAttr(cast<StdCallAttr>(A));
    2683             :     case attr::SysVABI:
    2684           0 :       return getDerived().TraverseSysVABIAttr(cast<SysVABIAttr>(A));
    2685             :     case attr::TLSModel:
    2686           0 :       return getDerived().TraverseTLSModelAttr(cast<TLSModelAttr>(A));
    2687             :     case attr::Target:
    2688           0 :       return getDerived().TraverseTargetAttr(cast<TargetAttr>(A));
    2689             :     case attr::TestTypestate:
    2690           0 :       return getDerived().TraverseTestTypestateAttr(cast<TestTypestateAttr>(A));
    2691             :     case attr::ThisCall:
    2692           0 :       return getDerived().TraverseThisCallAttr(cast<ThisCallAttr>(A));
    2693             :     case attr::Thread:
    2694           0 :       return getDerived().TraverseThreadAttr(cast<ThreadAttr>(A));
    2695             :     case attr::TransparentUnion:
    2696           0 :       return getDerived().TraverseTransparentUnionAttr(cast<TransparentUnionAttr>(A));
    2697             :     case attr::TryAcquireCapability:
    2698           0 :       return getDerived().TraverseTryAcquireCapabilityAttr(cast<TryAcquireCapabilityAttr>(A));
    2699             :     case attr::TypeTagForDatatype:
    2700           0 :       return getDerived().TraverseTypeTagForDatatypeAttr(cast<TypeTagForDatatypeAttr>(A));
    2701             :     case attr::TypeVisibility:
    2702           0 :       return getDerived().TraverseTypeVisibilityAttr(cast<TypeVisibilityAttr>(A));
    2703             :     case attr::Unavailable:
    2704           0 :       return getDerived().TraverseUnavailableAttr(cast<UnavailableAttr>(A));
    2705             :     case attr::Unused:
    2706           0 :       return getDerived().TraverseUnusedAttr(cast<UnusedAttr>(A));
    2707             :     case attr::Used:
    2708           0 :       return getDerived().TraverseUsedAttr(cast<UsedAttr>(A));
    2709             :     case attr::Uuid:
    2710           0 :       return getDerived().TraverseUuidAttr(cast<UuidAttr>(A));
    2711             :     case attr::VecReturn:
    2712           0 :       return getDerived().TraverseVecReturnAttr(cast<VecReturnAttr>(A));
    2713             :     case attr::VecTypeHint:
    2714           0 :       return getDerived().TraverseVecTypeHintAttr(cast<VecTypeHintAttr>(A));
    2715             :     case attr::VectorCall:
    2716           0 :       return getDerived().TraverseVectorCallAttr(cast<VectorCallAttr>(A));
    2717             :     case attr::Visibility:
    2718           0 :       return getDerived().TraverseVisibilityAttr(cast<VisibilityAttr>(A));
    2719             :     case attr::WarnUnused:
    2720           0 :       return getDerived().TraverseWarnUnusedAttr(cast<WarnUnusedAttr>(A));
    2721             :     case attr::WarnUnusedResult:
    2722           0 :       return getDerived().TraverseWarnUnusedResultAttr(cast<WarnUnusedResultAttr>(A));
    2723             :     case attr::Weak:
    2724           0 :       return getDerived().TraverseWeakAttr(cast<WeakAttr>(A));
    2725             :     case attr::WeakImport:
    2726           0 :       return getDerived().TraverseWeakImportAttr(cast<WeakImportAttr>(A));
    2727             :     case attr::WeakRef:
    2728           0 :       return getDerived().TraverseWeakRefAttr(cast<WeakRefAttr>(A));
    2729             :     case attr::WorkGroupSizeHint:
    2730           0 :       return getDerived().TraverseWorkGroupSizeHintAttr(cast<WorkGroupSizeHintAttr>(A));
    2731             :     case attr::X86ForceAlignArgPointer:
    2732           0 :       return getDerived().TraverseX86ForceAlignArgPointerAttr(cast<X86ForceAlignArgPointerAttr>(A));
    2733             :   }
    2734           0 : }
    2735             : #endif  // ATTR_VISITOR_DECLS_ONLY

Generated by: LCOV version 1.11