/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |* *| |* Used by RecursiveASTVisitor to visit attributes. *| |* *| |* Automatically generated file, do not edit! *| |* *| \*===----------------------------------------------------------------------===*/ #ifdef ATTR_VISITOR_DECLS_ONLY bool TraverseAArch64VectorPcsAttr(AArch64VectorPcsAttr *A); bool VisitAArch64VectorPcsAttr(AArch64VectorPcsAttr *A) { return true; } bool TraverseAMDGPUFlatWorkGroupSizeAttr(AMDGPUFlatWorkGroupSizeAttr *A); bool VisitAMDGPUFlatWorkGroupSizeAttr(AMDGPUFlatWorkGroupSizeAttr *A) { return true; } bool TraverseAMDGPUNumSGPRAttr(AMDGPUNumSGPRAttr *A); bool VisitAMDGPUNumSGPRAttr(AMDGPUNumSGPRAttr *A) { return true; } bool TraverseAMDGPUNumVGPRAttr(AMDGPUNumVGPRAttr *A); bool VisitAMDGPUNumVGPRAttr(AMDGPUNumVGPRAttr *A) { return true; } bool TraverseAMDGPUWavesPerEUAttr(AMDGPUWavesPerEUAttr *A); bool VisitAMDGPUWavesPerEUAttr(AMDGPUWavesPerEUAttr *A) { return true; } bool TraverseARMInterruptAttr(ARMInterruptAttr *A); bool VisitARMInterruptAttr(ARMInterruptAttr *A) { return true; } bool TraverseAVRInterruptAttr(AVRInterruptAttr *A); bool VisitAVRInterruptAttr(AVRInterruptAttr *A) { return true; } bool TraverseAVRSignalAttr(AVRSignalAttr *A); bool VisitAVRSignalAttr(AVRSignalAttr *A) { return true; } bool TraverseAbiTagAttr(AbiTagAttr *A); bool VisitAbiTagAttr(AbiTagAttr *A) { return true; } bool TraverseAcquireCapabilityAttr(AcquireCapabilityAttr *A); bool VisitAcquireCapabilityAttr(AcquireCapabilityAttr *A) { return true; } bool TraverseAcquireHandleAttr(AcquireHandleAttr *A); bool VisitAcquireHandleAttr(AcquireHandleAttr *A) { return true; } bool TraverseAcquiredAfterAttr(AcquiredAfterAttr *A); bool VisitAcquiredAfterAttr(AcquiredAfterAttr *A) { return true; } bool TraverseAcquiredBeforeAttr(AcquiredBeforeAttr *A); bool VisitAcquiredBeforeAttr(AcquiredBeforeAttr *A) { return true; } bool TraverseAddressSpaceAttr(AddressSpaceAttr *A); bool VisitAddressSpaceAttr(AddressSpaceAttr *A) { return true; } bool TraverseAliasAttr(AliasAttr *A); bool VisitAliasAttr(AliasAttr *A) { return true; } bool TraverseAlignMac68kAttr(AlignMac68kAttr *A); bool VisitAlignMac68kAttr(AlignMac68kAttr *A) { return true; } bool TraverseAlignValueAttr(AlignValueAttr *A); bool VisitAlignValueAttr(AlignValueAttr *A) { return true; } bool TraverseAlignedAttr(AlignedAttr *A); bool VisitAlignedAttr(AlignedAttr *A) { return true; } bool TraverseAllocAlignAttr(AllocAlignAttr *A); bool VisitAllocAlignAttr(AllocAlignAttr *A) { return true; } bool TraverseAllocSizeAttr(AllocSizeAttr *A); bool VisitAllocSizeAttr(AllocSizeAttr *A) { return true; } bool TraverseAlwaysDestroyAttr(AlwaysDestroyAttr *A); bool VisitAlwaysDestroyAttr(AlwaysDestroyAttr *A) { return true; } bool TraverseAlwaysInlineAttr(AlwaysInlineAttr *A); bool VisitAlwaysInlineAttr(AlwaysInlineAttr *A) { return true; } bool TraverseAnalyzerNoReturnAttr(AnalyzerNoReturnAttr *A); bool VisitAnalyzerNoReturnAttr(AnalyzerNoReturnAttr *A) { return true; } bool TraverseAnnotateAttr(AnnotateAttr *A); bool VisitAnnotateAttr(AnnotateAttr *A) { return true; } bool TraverseAnyX86InterruptAttr(AnyX86InterruptAttr *A); bool VisitAnyX86InterruptAttr(AnyX86InterruptAttr *A) { return true; } bool TraverseAnyX86NoCallerSavedRegistersAttr(AnyX86NoCallerSavedRegistersAttr *A); bool VisitAnyX86NoCallerSavedRegistersAttr(AnyX86NoCallerSavedRegistersAttr *A) { return true; } bool TraverseAnyX86NoCfCheckAttr(AnyX86NoCfCheckAttr *A); bool VisitAnyX86NoCfCheckAttr(AnyX86NoCfCheckAttr *A) { return true; } bool TraverseArcWeakrefUnavailableAttr(ArcWeakrefUnavailableAttr *A); bool VisitArcWeakrefUnavailableAttr(ArcWeakrefUnavailableAttr *A) { return true; } bool TraverseArgumentWithTypeTagAttr(ArgumentWithTypeTagAttr *A); bool VisitArgumentWithTypeTagAttr(ArgumentWithTypeTagAttr *A) { return true; } bool TraverseArmMveAliasAttr(ArmMveAliasAttr *A); bool VisitArmMveAliasAttr(ArmMveAliasAttr *A) { return true; } bool TraverseArtificialAttr(ArtificialAttr *A); bool VisitArtificialAttr(ArtificialAttr *A) { return true; } bool TraverseAsmLabelAttr(AsmLabelAttr *A); bool VisitAsmLabelAttr(AsmLabelAttr *A) { return true; } bool TraverseAssertCapabilityAttr(AssertCapabilityAttr *A); bool VisitAssertCapabilityAttr(AssertCapabilityAttr *A) { return true; } bool TraverseAssertExclusiveLockAttr(AssertExclusiveLockAttr *A); bool VisitAssertExclusiveLockAttr(AssertExclusiveLockAttr *A) { return true; } bool TraverseAssertSharedLockAttr(AssertSharedLockAttr *A); bool VisitAssertSharedLockAttr(AssertSharedLockAttr *A) { return true; } bool TraverseAssumeAlignedAttr(AssumeAlignedAttr *A); bool VisitAssumeAlignedAttr(AssumeAlignedAttr *A) { return true; } bool TraverseAvailabilityAttr(AvailabilityAttr *A); bool VisitAvailabilityAttr(AvailabilityAttr *A) { return true; } bool TraverseBPFPreserveAccessIndexAttr(BPFPreserveAccessIndexAttr *A); bool VisitBPFPreserveAccessIndexAttr(BPFPreserveAccessIndexAttr *A) { return true; } bool TraverseBlocksAttr(BlocksAttr *A); bool VisitBlocksAttr(BlocksAttr *A) { return true; } bool TraverseC11NoReturnAttr(C11NoReturnAttr *A); bool VisitC11NoReturnAttr(C11NoReturnAttr *A) { return true; } bool TraverseCDeclAttr(CDeclAttr *A); bool VisitCDeclAttr(CDeclAttr *A) { return true; } bool TraverseCFAuditedTransferAttr(CFAuditedTransferAttr *A); bool VisitCFAuditedTransferAttr(CFAuditedTransferAttr *A) { return true; } bool TraverseCFConsumedAttr(CFConsumedAttr *A); bool VisitCFConsumedAttr(CFConsumedAttr *A) { return true; } bool TraverseCFGuardAttr(CFGuardAttr *A); bool VisitCFGuardAttr(CFGuardAttr *A) { return true; } bool TraverseCFICanonicalJumpTableAttr(CFICanonicalJumpTableAttr *A); bool VisitCFICanonicalJumpTableAttr(CFICanonicalJumpTableAttr *A) { return true; } bool TraverseCFReturnsNotRetainedAttr(CFReturnsNotRetainedAttr *A); bool VisitCFReturnsNotRetainedAttr(CFReturnsNotRetainedAttr *A) { return true; } bool TraverseCFReturnsRetainedAttr(CFReturnsRetainedAttr *A); bool VisitCFReturnsRetainedAttr(CFReturnsRetainedAttr *A) { return true; } bool TraverseCFUnknownTransferAttr(CFUnknownTransferAttr *A); bool VisitCFUnknownTransferAttr(CFUnknownTransferAttr *A) { return true; } bool TraverseCPUDispatchAttr(CPUDispatchAttr *A); bool VisitCPUDispatchAttr(CPUDispatchAttr *A) { return true; } bool TraverseCPUSpecificAttr(CPUSpecificAttr *A); bool VisitCPUSpecificAttr(CPUSpecificAttr *A) { return true; } bool TraverseCUDAConstantAttr(CUDAConstantAttr *A); bool VisitCUDAConstantAttr(CUDAConstantAttr *A) { return true; } bool TraverseCUDADeviceAttr(CUDADeviceAttr *A); bool VisitCUDADeviceAttr(CUDADeviceAttr *A) { return true; } bool TraverseCUDAGlobalAttr(CUDAGlobalAttr *A); bool VisitCUDAGlobalAttr(CUDAGlobalAttr *A) { return true; } bool TraverseCUDAHostAttr(CUDAHostAttr *A); bool VisitCUDAHostAttr(CUDAHostAttr *A) { return true; } bool TraverseCUDAInvalidTargetAttr(CUDAInvalidTargetAttr *A); bool VisitCUDAInvalidTargetAttr(CUDAInvalidTargetAttr *A) { return true; } bool TraverseCUDALaunchBoundsAttr(CUDALaunchBoundsAttr *A); bool VisitCUDALaunchBoundsAttr(CUDALaunchBoundsAttr *A) { return true; } bool TraverseCUDASharedAttr(CUDASharedAttr *A); bool VisitCUDASharedAttr(CUDASharedAttr *A) { return true; } bool TraverseCXX11NoReturnAttr(CXX11NoReturnAttr *A); bool VisitCXX11NoReturnAttr(CXX11NoReturnAttr *A) { return true; } bool TraverseCallableWhenAttr(CallableWhenAttr *A); bool VisitCallableWhenAttr(CallableWhenAttr *A) { return true; } bool TraverseCallbackAttr(CallbackAttr *A); bool VisitCallbackAttr(CallbackAttr *A) { return true; } bool TraverseCapabilityAttr(CapabilityAttr *A); bool VisitCapabilityAttr(CapabilityAttr *A) { return true; } bool TraverseCapturedRecordAttr(CapturedRecordAttr *A); bool VisitCapturedRecordAttr(CapturedRecordAttr *A) { return true; } bool TraverseCarriesDependencyAttr(CarriesDependencyAttr *A); bool VisitCarriesDependencyAttr(CarriesDependencyAttr *A) { return true; } bool TraverseCleanupAttr(CleanupAttr *A); bool VisitCleanupAttr(CleanupAttr *A) { return true; } bool TraverseCodeSegAttr(CodeSegAttr *A); bool VisitCodeSegAttr(CodeSegAttr *A) { return true; } bool TraverseColdAttr(ColdAttr *A); bool VisitColdAttr(ColdAttr *A) { return true; } bool TraverseCommonAttr(CommonAttr *A); bool VisitCommonAttr(CommonAttr *A) { return true; } bool TraverseConstAttr(ConstAttr *A); bool VisitConstAttr(ConstAttr *A) { return true; } bool TraverseConstInitAttr(ConstInitAttr *A); bool VisitConstInitAttr(ConstInitAttr *A) { return true; } bool TraverseConstructorAttr(ConstructorAttr *A); bool VisitConstructorAttr(ConstructorAttr *A) { return true; } bool TraverseConsumableAttr(ConsumableAttr *A); bool VisitConsumableAttr(ConsumableAttr *A) { return true; } bool TraverseConsumableAutoCastAttr(ConsumableAutoCastAttr *A); bool VisitConsumableAutoCastAttr(ConsumableAutoCastAttr *A) { return true; } bool TraverseConsumableSetOnReadAttr(ConsumableSetOnReadAttr *A); bool VisitConsumableSetOnReadAttr(ConsumableSetOnReadAttr *A) { return true; } bool TraverseConvergentAttr(ConvergentAttr *A); bool VisitConvergentAttr(ConvergentAttr *A) { return true; } bool TraverseDLLExportAttr(DLLExportAttr *A); bool VisitDLLExportAttr(DLLExportAttr *A) { return true; } bool TraverseDLLExportStaticLocalAttr(DLLExportStaticLocalAttr *A); bool VisitDLLExportStaticLocalAttr(DLLExportStaticLocalAttr *A) { return true; } bool TraverseDLLImportAttr(DLLImportAttr *A); bool VisitDLLImportAttr(DLLImportAttr *A) { return true; } bool TraverseDLLImportStaticLocalAttr(DLLImportStaticLocalAttr *A); bool VisitDLLImportStaticLocalAttr(DLLImportStaticLocalAttr *A) { return true; } bool TraverseDeprecatedAttr(DeprecatedAttr *A); bool VisitDeprecatedAttr(DeprecatedAttr *A) { return true; } bool TraverseDestructorAttr(DestructorAttr *A); bool VisitDestructorAttr(DestructorAttr *A) { return true; } bool TraverseDiagnoseIfAttr(DiagnoseIfAttr *A); bool VisitDiagnoseIfAttr(DiagnoseIfAttr *A) { return true; } bool TraverseDisableTailCallsAttr(DisableTailCallsAttr *A); bool VisitDisableTailCallsAttr(DisableTailCallsAttr *A) { return true; } bool TraverseEmptyBasesAttr(EmptyBasesAttr *A); bool VisitEmptyBasesAttr(EmptyBasesAttr *A) { return true; } bool TraverseEnableIfAttr(EnableIfAttr *A); bool VisitEnableIfAttr(EnableIfAttr *A) { return true; } bool TraverseEnumExtensibilityAttr(EnumExtensibilityAttr *A); bool VisitEnumExtensibilityAttr(EnumExtensibilityAttr *A) { return true; } bool TraverseExcludeFromExplicitInstantiationAttr(ExcludeFromExplicitInstantiationAttr *A); bool VisitExcludeFromExplicitInstantiationAttr(ExcludeFromExplicitInstantiationAttr *A) { return true; } bool TraverseExclusiveTrylockFunctionAttr(ExclusiveTrylockFunctionAttr *A); bool VisitExclusiveTrylockFunctionAttr(ExclusiveTrylockFunctionAttr *A) { return true; } bool TraverseExternalSourceSymbolAttr(ExternalSourceSymbolAttr *A); bool VisitExternalSourceSymbolAttr(ExternalSourceSymbolAttr *A) { return true; } bool TraverseFallThroughAttr(FallThroughAttr *A); bool VisitFallThroughAttr(FallThroughAttr *A) { return true; } bool TraverseFastCallAttr(FastCallAttr *A); bool VisitFastCallAttr(FastCallAttr *A) { return true; } bool TraverseFinalAttr(FinalAttr *A); bool VisitFinalAttr(FinalAttr *A) { return true; } bool TraverseFlagEnumAttr(FlagEnumAttr *A); bool VisitFlagEnumAttr(FlagEnumAttr *A) { return true; } bool TraverseFlattenAttr(FlattenAttr *A); bool VisitFlattenAttr(FlattenAttr *A) { return true; } bool TraverseFormatAttr(FormatAttr *A); bool VisitFormatAttr(FormatAttr *A) { return true; } bool TraverseFormatArgAttr(FormatArgAttr *A); bool VisitFormatArgAttr(FormatArgAttr *A) { return true; } bool TraverseGNUInlineAttr(GNUInlineAttr *A); bool VisitGNUInlineAttr(GNUInlineAttr *A) { return true; } bool TraverseGuardedByAttr(GuardedByAttr *A); bool VisitGuardedByAttr(GuardedByAttr *A) { return true; } bool TraverseGuardedVarAttr(GuardedVarAttr *A); bool VisitGuardedVarAttr(GuardedVarAttr *A) { return true; } bool TraverseHIPPinnedShadowAttr(HIPPinnedShadowAttr *A); bool VisitHIPPinnedShadowAttr(HIPPinnedShadowAttr *A) { return true; } bool TraverseHotAttr(HotAttr *A); bool VisitHotAttr(HotAttr *A) { return true; } bool TraverseIBActionAttr(IBActionAttr *A); bool VisitIBActionAttr(IBActionAttr *A) { return true; } bool TraverseIBOutletAttr(IBOutletAttr *A); bool VisitIBOutletAttr(IBOutletAttr *A) { return true; } bool TraverseIBOutletCollectionAttr(IBOutletCollectionAttr *A); bool VisitIBOutletCollectionAttr(IBOutletCollectionAttr *A) { return true; } bool TraverseIFuncAttr(IFuncAttr *A); bool VisitIFuncAttr(IFuncAttr *A) { return true; } bool TraverseInitPriorityAttr(InitPriorityAttr *A); bool VisitInitPriorityAttr(InitPriorityAttr *A) { return true; } bool TraverseInitSegAttr(InitSegAttr *A); bool VisitInitSegAttr(InitSegAttr *A) { return true; } bool TraverseIntelOclBiccAttr(IntelOclBiccAttr *A); bool VisitIntelOclBiccAttr(IntelOclBiccAttr *A) { return true; } bool TraverseInternalLinkageAttr(InternalLinkageAttr *A); bool VisitInternalLinkageAttr(InternalLinkageAttr *A) { return true; } bool TraverseLTOVisibilityPublicAttr(LTOVisibilityPublicAttr *A); bool VisitLTOVisibilityPublicAttr(LTOVisibilityPublicAttr *A) { return true; } bool TraverseLayoutVersionAttr(LayoutVersionAttr *A); bool VisitLayoutVersionAttr(LayoutVersionAttr *A) { return true; } bool TraverseLifetimeBoundAttr(LifetimeBoundAttr *A); bool VisitLifetimeBoundAttr(LifetimeBoundAttr *A) { return true; } bool TraverseLockReturnedAttr(LockReturnedAttr *A); bool VisitLockReturnedAttr(LockReturnedAttr *A) { return true; } bool TraverseLocksExcludedAttr(LocksExcludedAttr *A); bool VisitLocksExcludedAttr(LocksExcludedAttr *A) { return true; } bool TraverseLoopHintAttr(LoopHintAttr *A); bool VisitLoopHintAttr(LoopHintAttr *A) { return true; } bool TraverseMIGServerRoutineAttr(MIGServerRoutineAttr *A); bool VisitMIGServerRoutineAttr(MIGServerRoutineAttr *A) { return true; } bool TraverseMSABIAttr(MSABIAttr *A); bool VisitMSABIAttr(MSABIAttr *A) { return true; } bool TraverseMSAllocatorAttr(MSAllocatorAttr *A); bool VisitMSAllocatorAttr(MSAllocatorAttr *A) { return true; } bool TraverseMSInheritanceAttr(MSInheritanceAttr *A); bool VisitMSInheritanceAttr(MSInheritanceAttr *A) { return true; } bool TraverseMSNoVTableAttr(MSNoVTableAttr *A); bool VisitMSNoVTableAttr(MSNoVTableAttr *A) { return true; } bool TraverseMSP430InterruptAttr(MSP430InterruptAttr *A); bool VisitMSP430InterruptAttr(MSP430InterruptAttr *A) { return true; } bool TraverseMSStructAttr(MSStructAttr *A); bool VisitMSStructAttr(MSStructAttr *A) { return true; } bool TraverseMSVtorDispAttr(MSVtorDispAttr *A); bool VisitMSVtorDispAttr(MSVtorDispAttr *A) { return true; } bool TraverseMaxFieldAlignmentAttr(MaxFieldAlignmentAttr *A); bool VisitMaxFieldAlignmentAttr(MaxFieldAlignmentAttr *A) { return true; } bool TraverseMayAliasAttr(MayAliasAttr *A); bool VisitMayAliasAttr(MayAliasAttr *A) { return true; } bool TraverseMicroMipsAttr(MicroMipsAttr *A); bool VisitMicroMipsAttr(MicroMipsAttr *A) { return true; } bool TraverseMinSizeAttr(MinSizeAttr *A); bool VisitMinSizeAttr(MinSizeAttr *A) { return true; } bool TraverseMinVectorWidthAttr(MinVectorWidthAttr *A); bool VisitMinVectorWidthAttr(MinVectorWidthAttr *A) { return true; } bool TraverseMips16Attr(Mips16Attr *A); bool VisitMips16Attr(Mips16Attr *A) { return true; } bool TraverseMipsInterruptAttr(MipsInterruptAttr *A); bool VisitMipsInterruptAttr(MipsInterruptAttr *A) { return true; } bool TraverseMipsLongCallAttr(MipsLongCallAttr *A); bool VisitMipsLongCallAttr(MipsLongCallAttr *A) { return true; } bool TraverseMipsShortCallAttr(MipsShortCallAttr *A); bool VisitMipsShortCallAttr(MipsShortCallAttr *A) { return true; } bool TraverseModeAttr(ModeAttr *A); bool VisitModeAttr(ModeAttr *A) { return true; } bool TraverseNSConsumedAttr(NSConsumedAttr *A); bool VisitNSConsumedAttr(NSConsumedAttr *A) { return true; } bool TraverseNSConsumesSelfAttr(NSConsumesSelfAttr *A); bool VisitNSConsumesSelfAttr(NSConsumesSelfAttr *A) { return true; } bool TraverseNSReturnsAutoreleasedAttr(NSReturnsAutoreleasedAttr *A); bool VisitNSReturnsAutoreleasedAttr(NSReturnsAutoreleasedAttr *A) { return true; } bool TraverseNSReturnsNotRetainedAttr(NSReturnsNotRetainedAttr *A); bool VisitNSReturnsNotRetainedAttr(NSReturnsNotRetainedAttr *A) { return true; } bool TraverseNSReturnsRetainedAttr(NSReturnsRetainedAttr *A); bool VisitNSReturnsRetainedAttr(NSReturnsRetainedAttr *A) { return true; } bool TraverseNakedAttr(NakedAttr *A); bool VisitNakedAttr(NakedAttr *A) { return true; } bool TraverseNoAliasAttr(NoAliasAttr *A); bool VisitNoAliasAttr(NoAliasAttr *A) { return true; } bool TraverseNoBuiltinAttr(NoBuiltinAttr *A); bool VisitNoBuiltinAttr(NoBuiltinAttr *A) { return true; } bool TraverseNoCommonAttr(NoCommonAttr *A); bool VisitNoCommonAttr(NoCommonAttr *A) { return true; } bool TraverseNoDebugAttr(NoDebugAttr *A); bool VisitNoDebugAttr(NoDebugAttr *A) { return true; } bool TraverseNoDerefAttr(NoDerefAttr *A); bool VisitNoDerefAttr(NoDerefAttr *A) { return true; } bool TraverseNoDestroyAttr(NoDestroyAttr *A); bool VisitNoDestroyAttr(NoDestroyAttr *A) { return true; } bool TraverseNoDuplicateAttr(NoDuplicateAttr *A); bool VisitNoDuplicateAttr(NoDuplicateAttr *A) { return true; } bool TraverseNoEscapeAttr(NoEscapeAttr *A); bool VisitNoEscapeAttr(NoEscapeAttr *A) { return true; } bool TraverseNoInlineAttr(NoInlineAttr *A); bool VisitNoInlineAttr(NoInlineAttr *A) { return true; } bool TraverseNoInstrumentFunctionAttr(NoInstrumentFunctionAttr *A); bool VisitNoInstrumentFunctionAttr(NoInstrumentFunctionAttr *A) { return true; } bool TraverseNoMicroMipsAttr(NoMicroMipsAttr *A); bool VisitNoMicroMipsAttr(NoMicroMipsAttr *A) { return true; } bool TraverseNoMips16Attr(NoMips16Attr *A); bool VisitNoMips16Attr(NoMips16Attr *A) { return true; } bool TraverseNoReturnAttr(NoReturnAttr *A); bool VisitNoReturnAttr(NoReturnAttr *A) { return true; } bool TraverseNoSanitizeAttr(NoSanitizeAttr *A); bool VisitNoSanitizeAttr(NoSanitizeAttr *A) { return true; } bool TraverseNoSpeculativeLoadHardeningAttr(NoSpeculativeLoadHardeningAttr *A); bool VisitNoSpeculativeLoadHardeningAttr(NoSpeculativeLoadHardeningAttr *A) { return true; } bool TraverseNoSplitStackAttr(NoSplitStackAttr *A); bool VisitNoSplitStackAttr(NoSplitStackAttr *A) { return true; } bool TraverseNoStackProtectorAttr(NoStackProtectorAttr *A); bool VisitNoStackProtectorAttr(NoStackProtectorAttr *A) { return true; } bool TraverseNoThreadSafetyAnalysisAttr(NoThreadSafetyAnalysisAttr *A); bool VisitNoThreadSafetyAnalysisAttr(NoThreadSafetyAnalysisAttr *A) { return true; } bool TraverseNoThrowAttr(NoThrowAttr *A); bool VisitNoThrowAttr(NoThrowAttr *A) { return true; } bool TraverseNoUniqueAddressAttr(NoUniqueAddressAttr *A); bool VisitNoUniqueAddressAttr(NoUniqueAddressAttr *A) { return true; } bool TraverseNonNullAttr(NonNullAttr *A); bool VisitNonNullAttr(NonNullAttr *A) { return true; } bool TraverseNotTailCalledAttr(NotTailCalledAttr *A); bool VisitNotTailCalledAttr(NotTailCalledAttr *A) { return true; } bool TraverseOMPAllocateDeclAttr(OMPAllocateDeclAttr *A); bool VisitOMPAllocateDeclAttr(OMPAllocateDeclAttr *A) { return true; } bool TraverseOMPCaptureKindAttr(OMPCaptureKindAttr *A); bool VisitOMPCaptureKindAttr(OMPCaptureKindAttr *A) { return true; } bool TraverseOMPCaptureNoInitAttr(OMPCaptureNoInitAttr *A); bool VisitOMPCaptureNoInitAttr(OMPCaptureNoInitAttr *A) { return true; } bool TraverseOMPDeclareSimdDeclAttr(OMPDeclareSimdDeclAttr *A); bool VisitOMPDeclareSimdDeclAttr(OMPDeclareSimdDeclAttr *A) { return true; } bool TraverseOMPDeclareTargetDeclAttr(OMPDeclareTargetDeclAttr *A); bool VisitOMPDeclareTargetDeclAttr(OMPDeclareTargetDeclAttr *A) { return true; } bool TraverseOMPDeclareVariantAttr(OMPDeclareVariantAttr *A); bool VisitOMPDeclareVariantAttr(OMPDeclareVariantAttr *A) { return true; } bool TraverseOMPReferencedVarAttr(OMPReferencedVarAttr *A); bool VisitOMPReferencedVarAttr(OMPReferencedVarAttr *A) { return true; } bool TraverseOMPThreadPrivateDeclAttr(OMPThreadPrivateDeclAttr *A); bool VisitOMPThreadPrivateDeclAttr(OMPThreadPrivateDeclAttr *A) { return true; } bool TraverseOSConsumedAttr(OSConsumedAttr *A); bool VisitOSConsumedAttr(OSConsumedAttr *A) { return true; } bool TraverseOSConsumesThisAttr(OSConsumesThisAttr *A); bool VisitOSConsumesThisAttr(OSConsumesThisAttr *A) { return true; } bool TraverseOSReturnsNotRetainedAttr(OSReturnsNotRetainedAttr *A); bool VisitOSReturnsNotRetainedAttr(OSReturnsNotRetainedAttr *A) { return true; } bool TraverseOSReturnsRetainedAttr(OSReturnsRetainedAttr *A); bool VisitOSReturnsRetainedAttr(OSReturnsRetainedAttr *A) { return true; } bool TraverseOSReturnsRetainedOnNonZeroAttr(OSReturnsRetainedOnNonZeroAttr *A); bool VisitOSReturnsRetainedOnNonZeroAttr(OSReturnsRetainedOnNonZeroAttr *A) { return true; } bool TraverseOSReturnsRetainedOnZeroAttr(OSReturnsRetainedOnZeroAttr *A); bool VisitOSReturnsRetainedOnZeroAttr(OSReturnsRetainedOnZeroAttr *A) { return true; } bool TraverseObjCBoxableAttr(ObjCBoxableAttr *A); bool VisitObjCBoxableAttr(ObjCBoxableAttr *A) { return true; } bool TraverseObjCBridgeAttr(ObjCBridgeAttr *A); bool VisitObjCBridgeAttr(ObjCBridgeAttr *A) { return true; } bool TraverseObjCBridgeMutableAttr(ObjCBridgeMutableAttr *A); bool VisitObjCBridgeMutableAttr(ObjCBridgeMutableAttr *A) { return true; } bool TraverseObjCBridgeRelatedAttr(ObjCBridgeRelatedAttr *A); bool VisitObjCBridgeRelatedAttr(ObjCBridgeRelatedAttr *A) { return true; } bool TraverseObjCClassStubAttr(ObjCClassStubAttr *A); bool VisitObjCClassStubAttr(ObjCClassStubAttr *A) { return true; } bool TraverseObjCDesignatedInitializerAttr(ObjCDesignatedInitializerAttr *A); bool VisitObjCDesignatedInitializerAttr(ObjCDesignatedInitializerAttr *A) { return true; } bool TraverseObjCDirectAttr(ObjCDirectAttr *A); bool VisitObjCDirectAttr(ObjCDirectAttr *A) { return true; } bool TraverseObjCDirectMembersAttr(ObjCDirectMembersAttr *A); bool VisitObjCDirectMembersAttr(ObjCDirectMembersAttr *A) { return true; } bool TraverseObjCExceptionAttr(ObjCExceptionAttr *A); bool VisitObjCExceptionAttr(ObjCExceptionAttr *A) { return true; } bool TraverseObjCExplicitProtocolImplAttr(ObjCExplicitProtocolImplAttr *A); bool VisitObjCExplicitProtocolImplAttr(ObjCExplicitProtocolImplAttr *A) { return true; } bool TraverseObjCExternallyRetainedAttr(ObjCExternallyRetainedAttr *A); bool VisitObjCExternallyRetainedAttr(ObjCExternallyRetainedAttr *A) { return true; } bool TraverseObjCGCAttr(ObjCGCAttr *A); bool VisitObjCGCAttr(ObjCGCAttr *A) { return true; } bool TraverseObjCIndependentClassAttr(ObjCIndependentClassAttr *A); bool VisitObjCIndependentClassAttr(ObjCIndependentClassAttr *A) { return true; } bool TraverseObjCInertUnsafeUnretainedAttr(ObjCInertUnsafeUnretainedAttr *A); bool VisitObjCInertUnsafeUnretainedAttr(ObjCInertUnsafeUnretainedAttr *A) { return true; } bool TraverseObjCKindOfAttr(ObjCKindOfAttr *A); bool VisitObjCKindOfAttr(ObjCKindOfAttr *A) { return true; } bool TraverseObjCMethodFamilyAttr(ObjCMethodFamilyAttr *A); bool VisitObjCMethodFamilyAttr(ObjCMethodFamilyAttr *A) { return true; } bool TraverseObjCNSObjectAttr(ObjCNSObjectAttr *A); bool VisitObjCNSObjectAttr(ObjCNSObjectAttr *A) { return true; } bool TraverseObjCNonLazyClassAttr(ObjCNonLazyClassAttr *A); bool VisitObjCNonLazyClassAttr(ObjCNonLazyClassAttr *A) { return true; } bool TraverseObjCOwnershipAttr(ObjCOwnershipAttr *A); bool VisitObjCOwnershipAttr(ObjCOwnershipAttr *A) { return true; } bool TraverseObjCPreciseLifetimeAttr(ObjCPreciseLifetimeAttr *A); bool VisitObjCPreciseLifetimeAttr(ObjCPreciseLifetimeAttr *A) { return true; } bool TraverseObjCRequiresPropertyDefsAttr(ObjCRequiresPropertyDefsAttr *A); bool VisitObjCRequiresPropertyDefsAttr(ObjCRequiresPropertyDefsAttr *A) { return true; } bool TraverseObjCRequiresSuperAttr(ObjCRequiresSuperAttr *A); bool VisitObjCRequiresSuperAttr(ObjCRequiresSuperAttr *A) { return true; } bool TraverseObjCReturnsInnerPointerAttr(ObjCReturnsInnerPointerAttr *A); bool VisitObjCReturnsInnerPointerAttr(ObjCReturnsInnerPointerAttr *A) { return true; } bool TraverseObjCRootClassAttr(ObjCRootClassAttr *A); bool VisitObjCRootClassAttr(ObjCRootClassAttr *A) { return true; } bool TraverseObjCRuntimeNameAttr(ObjCRuntimeNameAttr *A); bool VisitObjCRuntimeNameAttr(ObjCRuntimeNameAttr *A) { return true; } bool TraverseObjCRuntimeVisibleAttr(ObjCRuntimeVisibleAttr *A); bool VisitObjCRuntimeVisibleAttr(ObjCRuntimeVisibleAttr *A) { return true; } bool TraverseObjCSubclassingRestrictedAttr(ObjCSubclassingRestrictedAttr *A); bool VisitObjCSubclassingRestrictedAttr(ObjCSubclassingRestrictedAttr *A) { return true; } bool TraverseOpenCLAccessAttr(OpenCLAccessAttr *A); bool VisitOpenCLAccessAttr(OpenCLAccessAttr *A) { return true; } bool TraverseOpenCLConstantAddressSpaceAttr(OpenCLConstantAddressSpaceAttr *A); bool VisitOpenCLConstantAddressSpaceAttr(OpenCLConstantAddressSpaceAttr *A) { return true; } bool TraverseOpenCLGenericAddressSpaceAttr(OpenCLGenericAddressSpaceAttr *A); bool VisitOpenCLGenericAddressSpaceAttr(OpenCLGenericAddressSpaceAttr *A) { return true; } bool TraverseOpenCLGlobalAddressSpaceAttr(OpenCLGlobalAddressSpaceAttr *A); bool VisitOpenCLGlobalAddressSpaceAttr(OpenCLGlobalAddressSpaceAttr *A) { return true; } bool TraverseOpenCLIntelReqdSubGroupSizeAttr(OpenCLIntelReqdSubGroupSizeAttr *A); bool VisitOpenCLIntelReqdSubGroupSizeAttr(OpenCLIntelReqdSubGroupSizeAttr *A) { return true; } bool TraverseOpenCLKernelAttr(OpenCLKernelAttr *A); bool VisitOpenCLKernelAttr(OpenCLKernelAttr *A) { return true; } bool TraverseOpenCLLocalAddressSpaceAttr(OpenCLLocalAddressSpaceAttr *A); bool VisitOpenCLLocalAddressSpaceAttr(OpenCLLocalAddressSpaceAttr *A) { return true; } bool TraverseOpenCLPrivateAddressSpaceAttr(OpenCLPrivateAddressSpaceAttr *A); bool VisitOpenCLPrivateAddressSpaceAttr(OpenCLPrivateAddressSpaceAttr *A) { return true; } bool TraverseOpenCLUnrollHintAttr(OpenCLUnrollHintAttr *A); bool VisitOpenCLUnrollHintAttr(OpenCLUnrollHintAttr *A) { return true; } bool TraverseOptimizeNoneAttr(OptimizeNoneAttr *A); bool VisitOptimizeNoneAttr(OptimizeNoneAttr *A) { return true; } bool TraverseOverloadableAttr(OverloadableAttr *A); bool VisitOverloadableAttr(OverloadableAttr *A) { return true; } bool TraverseOverrideAttr(OverrideAttr *A); bool VisitOverrideAttr(OverrideAttr *A) { return true; } bool TraverseOwnerAttr(OwnerAttr *A); bool VisitOwnerAttr(OwnerAttr *A) { return true; } bool TraverseOwnershipAttr(OwnershipAttr *A); bool VisitOwnershipAttr(OwnershipAttr *A) { return true; } bool TraversePackedAttr(PackedAttr *A); bool VisitPackedAttr(PackedAttr *A) { return true; } bool TraverseParamTypestateAttr(ParamTypestateAttr *A); bool VisitParamTypestateAttr(ParamTypestateAttr *A) { return true; } bool TraversePascalAttr(PascalAttr *A); bool VisitPascalAttr(PascalAttr *A) { return true; } bool TraversePassObjectSizeAttr(PassObjectSizeAttr *A); bool VisitPassObjectSizeAttr(PassObjectSizeAttr *A) { return true; } bool TraversePatchableFunctionEntryAttr(PatchableFunctionEntryAttr *A); bool VisitPatchableFunctionEntryAttr(PatchableFunctionEntryAttr *A) { return true; } bool TraversePcsAttr(PcsAttr *A); bool VisitPcsAttr(PcsAttr *A) { return true; } bool TraversePointerAttr(PointerAttr *A); bool VisitPointerAttr(PointerAttr *A) { return true; } bool TraversePragmaClangBSSSectionAttr(PragmaClangBSSSectionAttr *A); bool VisitPragmaClangBSSSectionAttr(PragmaClangBSSSectionAttr *A) { return true; } bool TraversePragmaClangDataSectionAttr(PragmaClangDataSectionAttr *A); bool VisitPragmaClangDataSectionAttr(PragmaClangDataSectionAttr *A) { return true; } bool TraversePragmaClangRelroSectionAttr(PragmaClangRelroSectionAttr *A); bool VisitPragmaClangRelroSectionAttr(PragmaClangRelroSectionAttr *A) { return true; } bool TraversePragmaClangRodataSectionAttr(PragmaClangRodataSectionAttr *A); bool VisitPragmaClangRodataSectionAttr(PragmaClangRodataSectionAttr *A) { return true; } bool TraversePragmaClangTextSectionAttr(PragmaClangTextSectionAttr *A); bool VisitPragmaClangTextSectionAttr(PragmaClangTextSectionAttr *A) { return true; } bool TraversePreserveAllAttr(PreserveAllAttr *A); bool VisitPreserveAllAttr(PreserveAllAttr *A) { return true; } bool TraversePreserveMostAttr(PreserveMostAttr *A); bool VisitPreserveMostAttr(PreserveMostAttr *A) { return true; } bool TraversePtGuardedByAttr(PtGuardedByAttr *A); bool VisitPtGuardedByAttr(PtGuardedByAttr *A) { return true; } bool TraversePtGuardedVarAttr(PtGuardedVarAttr *A); bool VisitPtGuardedVarAttr(PtGuardedVarAttr *A) { return true; } bool TraversePtr32Attr(Ptr32Attr *A); bool VisitPtr32Attr(Ptr32Attr *A) { return true; } bool TraversePtr64Attr(Ptr64Attr *A); bool VisitPtr64Attr(Ptr64Attr *A) { return true; } bool TraversePureAttr(PureAttr *A); bool VisitPureAttr(PureAttr *A) { return true; } bool TraverseRISCVInterruptAttr(RISCVInterruptAttr *A); bool VisitRISCVInterruptAttr(RISCVInterruptAttr *A) { return true; } bool TraverseRegCallAttr(RegCallAttr *A); bool VisitRegCallAttr(RegCallAttr *A) { return true; } bool TraverseReinitializesAttr(ReinitializesAttr *A); bool VisitReinitializesAttr(ReinitializesAttr *A) { return true; } bool TraverseReleaseCapabilityAttr(ReleaseCapabilityAttr *A); bool VisitReleaseCapabilityAttr(ReleaseCapabilityAttr *A) { return true; } bool TraverseReleaseHandleAttr(ReleaseHandleAttr *A); bool VisitReleaseHandleAttr(ReleaseHandleAttr *A) { return true; } bool TraverseRenderScriptKernelAttr(RenderScriptKernelAttr *A); bool VisitRenderScriptKernelAttr(RenderScriptKernelAttr *A) { return true; } bool TraverseReqdWorkGroupSizeAttr(ReqdWorkGroupSizeAttr *A); bool VisitReqdWorkGroupSizeAttr(ReqdWorkGroupSizeAttr *A) { return true; } bool TraverseRequiresCapabilityAttr(RequiresCapabilityAttr *A); bool VisitRequiresCapabilityAttr(RequiresCapabilityAttr *A) { return true; } bool TraverseRestrictAttr(RestrictAttr *A); bool VisitRestrictAttr(RestrictAttr *A) { return true; } bool TraverseReturnTypestateAttr(ReturnTypestateAttr *A); bool VisitReturnTypestateAttr(ReturnTypestateAttr *A) { return true; } bool TraverseReturnsNonNullAttr(ReturnsNonNullAttr *A); bool VisitReturnsNonNullAttr(ReturnsNonNullAttr *A) { return true; } bool TraverseReturnsTwiceAttr(ReturnsTwiceAttr *A); bool VisitReturnsTwiceAttr(ReturnsTwiceAttr *A) { return true; } bool TraverseSPtrAttr(SPtrAttr *A); bool VisitSPtrAttr(SPtrAttr *A) { return true; } bool TraverseSYCLKernelAttr(SYCLKernelAttr *A); bool VisitSYCLKernelAttr(SYCLKernelAttr *A) { return true; } bool TraverseScopedLockableAttr(ScopedLockableAttr *A); bool VisitScopedLockableAttr(ScopedLockableAttr *A) { return true; } bool TraverseSectionAttr(SectionAttr *A); bool VisitSectionAttr(SectionAttr *A) { return true; } bool TraverseSelectAnyAttr(SelectAnyAttr *A); bool VisitSelectAnyAttr(SelectAnyAttr *A) { return true; } bool TraverseSentinelAttr(SentinelAttr *A); bool VisitSentinelAttr(SentinelAttr *A) { return true; } bool TraverseSetTypestateAttr(SetTypestateAttr *A); bool VisitSetTypestateAttr(SetTypestateAttr *A) { return true; } bool TraverseSharedTrylockFunctionAttr(SharedTrylockFunctionAttr *A); bool VisitSharedTrylockFunctionAttr(SharedTrylockFunctionAttr *A) { return true; } bool TraverseSpeculativeLoadHardeningAttr(SpeculativeLoadHardeningAttr *A); bool VisitSpeculativeLoadHardeningAttr(SpeculativeLoadHardeningAttr *A) { return true; } bool TraverseStdCallAttr(StdCallAttr *A); bool VisitStdCallAttr(StdCallAttr *A) { return true; } bool TraverseSuppressAttr(SuppressAttr *A); bool VisitSuppressAttr(SuppressAttr *A) { return true; } bool TraverseSwiftCallAttr(SwiftCallAttr *A); bool VisitSwiftCallAttr(SwiftCallAttr *A) { return true; } bool TraverseSwiftContextAttr(SwiftContextAttr *A); bool VisitSwiftContextAttr(SwiftContextAttr *A) { return true; } bool TraverseSwiftErrorResultAttr(SwiftErrorResultAttr *A); bool VisitSwiftErrorResultAttr(SwiftErrorResultAttr *A) { return true; } bool TraverseSwiftIndirectResultAttr(SwiftIndirectResultAttr *A); bool VisitSwiftIndirectResultAttr(SwiftIndirectResultAttr *A) { return true; } bool TraverseSysVABIAttr(SysVABIAttr *A); bool VisitSysVABIAttr(SysVABIAttr *A) { return true; } bool TraverseTLSModelAttr(TLSModelAttr *A); bool VisitTLSModelAttr(TLSModelAttr *A) { return true; } bool TraverseTargetAttr(TargetAttr *A); bool VisitTargetAttr(TargetAttr *A) { return true; } bool TraverseTestTypestateAttr(TestTypestateAttr *A); bool VisitTestTypestateAttr(TestTypestateAttr *A) { return true; } bool TraverseThisCallAttr(ThisCallAttr *A); bool VisitThisCallAttr(ThisCallAttr *A) { return true; } bool TraverseThreadAttr(ThreadAttr *A); bool VisitThreadAttr(ThreadAttr *A) { return true; } bool TraverseTransparentUnionAttr(TransparentUnionAttr *A); bool VisitTransparentUnionAttr(TransparentUnionAttr *A) { return true; } bool TraverseTrivialABIAttr(TrivialABIAttr *A); bool VisitTrivialABIAttr(TrivialABIAttr *A) { return true; } bool TraverseTryAcquireCapabilityAttr(TryAcquireCapabilityAttr *A); bool VisitTryAcquireCapabilityAttr(TryAcquireCapabilityAttr *A) { return true; } bool TraverseTypeNonNullAttr(TypeNonNullAttr *A); bool VisitTypeNonNullAttr(TypeNonNullAttr *A) { return true; } bool TraverseTypeNullUnspecifiedAttr(TypeNullUnspecifiedAttr *A); bool VisitTypeNullUnspecifiedAttr(TypeNullUnspecifiedAttr *A) { return true; } bool TraverseTypeNullableAttr(TypeNullableAttr *A); bool VisitTypeNullableAttr(TypeNullableAttr *A) { return true; } bool TraverseTypeTagForDatatypeAttr(TypeTagForDatatypeAttr *A); bool VisitTypeTagForDatatypeAttr(TypeTagForDatatypeAttr *A) { return true; } bool TraverseTypeVisibilityAttr(TypeVisibilityAttr *A); bool VisitTypeVisibilityAttr(TypeVisibilityAttr *A) { return true; } bool TraverseUPtrAttr(UPtrAttr *A); bool VisitUPtrAttr(UPtrAttr *A) { return true; } bool TraverseUnavailableAttr(UnavailableAttr *A); bool VisitUnavailableAttr(UnavailableAttr *A) { return true; } bool TraverseUninitializedAttr(UninitializedAttr *A); bool VisitUninitializedAttr(UninitializedAttr *A) { return true; } bool TraverseUnusedAttr(UnusedAttr *A); bool VisitUnusedAttr(UnusedAttr *A) { return true; } bool TraverseUseHandleAttr(UseHandleAttr *A); bool VisitUseHandleAttr(UseHandleAttr *A) { return true; } bool TraverseUsedAttr(UsedAttr *A); bool VisitUsedAttr(UsedAttr *A) { return true; } bool TraverseUuidAttr(UuidAttr *A); bool VisitUuidAttr(UuidAttr *A) { return true; } bool TraverseVecReturnAttr(VecReturnAttr *A); bool VisitVecReturnAttr(VecReturnAttr *A) { return true; } bool TraverseVecTypeHintAttr(VecTypeHintAttr *A); bool VisitVecTypeHintAttr(VecTypeHintAttr *A) { return true; } bool TraverseVectorCallAttr(VectorCallAttr *A); bool VisitVectorCallAttr(VectorCallAttr *A) { return true; } bool TraverseVisibilityAttr(VisibilityAttr *A); bool VisitVisibilityAttr(VisibilityAttr *A) { return true; } bool TraverseWarnUnusedAttr(WarnUnusedAttr *A); bool VisitWarnUnusedAttr(WarnUnusedAttr *A) { return true; } bool TraverseWarnUnusedResultAttr(WarnUnusedResultAttr *A); bool VisitWarnUnusedResultAttr(WarnUnusedResultAttr *A) { return true; } bool TraverseWeakAttr(WeakAttr *A); bool VisitWeakAttr(WeakAttr *A) { return true; } bool TraverseWeakImportAttr(WeakImportAttr *A); bool VisitWeakImportAttr(WeakImportAttr *A) { return true; } bool TraverseWeakRefAttr(WeakRefAttr *A); bool VisitWeakRefAttr(WeakRefAttr *A) { return true; } bool TraverseWebAssemblyExportNameAttr(WebAssemblyExportNameAttr *A); bool VisitWebAssemblyExportNameAttr(WebAssemblyExportNameAttr *A) { return true; } bool TraverseWebAssemblyImportModuleAttr(WebAssemblyImportModuleAttr *A); bool VisitWebAssemblyImportModuleAttr(WebAssemblyImportModuleAttr *A) { return true; } bool TraverseWebAssemblyImportNameAttr(WebAssemblyImportNameAttr *A); bool VisitWebAssemblyImportNameAttr(WebAssemblyImportNameAttr *A) { return true; } bool TraverseWorkGroupSizeHintAttr(WorkGroupSizeHintAttr *A); bool VisitWorkGroupSizeHintAttr(WorkGroupSizeHintAttr *A) { return true; } bool TraverseX86ForceAlignArgPointerAttr(X86ForceAlignArgPointerAttr *A); bool VisitX86ForceAlignArgPointerAttr(X86ForceAlignArgPointerAttr *A) { return true; } bool TraverseXRayInstrumentAttr(XRayInstrumentAttr *A); bool VisitXRayInstrumentAttr(XRayInstrumentAttr *A) { return true; } bool TraverseXRayLogArgsAttr(XRayLogArgsAttr *A); bool VisitXRayLogArgsAttr(XRayLogArgsAttr *A) { return true; } #else // ATTR_VISITOR_DECLS_ONLY template bool VISITORCLASS::TraverseAArch64VectorPcsAttr(AArch64VectorPcsAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAArch64VectorPcsAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseAMDGPUFlatWorkGroupSizeAttr(AMDGPUFlatWorkGroupSizeAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAMDGPUFlatWorkGroupSizeAttr(A)) return false; if (!getDerived().TraverseStmt(A->getMin())) return false; if (!getDerived().TraverseStmt(A->getMax())) return false; return true; } template bool VISITORCLASS::TraverseAMDGPUNumSGPRAttr(AMDGPUNumSGPRAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAMDGPUNumSGPRAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseAMDGPUNumVGPRAttr(AMDGPUNumVGPRAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAMDGPUNumVGPRAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseAMDGPUWavesPerEUAttr(AMDGPUWavesPerEUAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAMDGPUWavesPerEUAttr(A)) return false; if (!getDerived().TraverseStmt(A->getMin())) return false; if (!getDerived().TraverseStmt(A->getMax())) return false; return true; } template bool VISITORCLASS::TraverseARMInterruptAttr(ARMInterruptAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitARMInterruptAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseAVRInterruptAttr(AVRInterruptAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAVRInterruptAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseAVRSignalAttr(AVRSignalAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAVRSignalAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseAbiTagAttr(AbiTagAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAbiTagAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseAcquireCapabilityAttr(AcquireCapabilityAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAcquireCapabilityAttr(A)) return false; { Expr * *I = A->args_begin(); Expr * *E = A->args_end(); for (; I != E; ++I) { if (!getDerived().TraverseStmt(*I)) return false; } } return true; } template bool VISITORCLASS::TraverseAcquireHandleAttr(AcquireHandleAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAcquireHandleAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseAcquiredAfterAttr(AcquiredAfterAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAcquiredAfterAttr(A)) return false; { Expr * *I = A->args_begin(); Expr * *E = A->args_end(); for (; I != E; ++I) { if (!getDerived().TraverseStmt(*I)) return false; } } return true; } template bool VISITORCLASS::TraverseAcquiredBeforeAttr(AcquiredBeforeAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAcquiredBeforeAttr(A)) return false; { Expr * *I = A->args_begin(); Expr * *E = A->args_end(); for (; I != E; ++I) { if (!getDerived().TraverseStmt(*I)) return false; } } return true; } template bool VISITORCLASS::TraverseAddressSpaceAttr(AddressSpaceAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAddressSpaceAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseAliasAttr(AliasAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAliasAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseAlignMac68kAttr(AlignMac68kAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAlignMac68kAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseAlignValueAttr(AlignValueAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAlignValueAttr(A)) return false; if (!getDerived().TraverseStmt(A->getAlignment())) return false; return true; } template bool VISITORCLASS::TraverseAlignedAttr(AlignedAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAlignedAttr(A)) return false; if (A->isAlignmentExpr()) { if (!getDerived().TraverseStmt(A->getAlignmentExpr())) return false; } else if (auto *TSI = A->getAlignmentType()) { if (!getDerived().TraverseTypeLoc(TSI->getTypeLoc())) return false; } return true; } template bool VISITORCLASS::TraverseAllocAlignAttr(AllocAlignAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAllocAlignAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseAllocSizeAttr(AllocSizeAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAllocSizeAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseAlwaysDestroyAttr(AlwaysDestroyAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAlwaysDestroyAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseAlwaysInlineAttr(AlwaysInlineAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAlwaysInlineAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseAnalyzerNoReturnAttr(AnalyzerNoReturnAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAnalyzerNoReturnAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseAnnotateAttr(AnnotateAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAnnotateAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseAnyX86InterruptAttr(AnyX86InterruptAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAnyX86InterruptAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseAnyX86NoCallerSavedRegistersAttr(AnyX86NoCallerSavedRegistersAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAnyX86NoCallerSavedRegistersAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseAnyX86NoCfCheckAttr(AnyX86NoCfCheckAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAnyX86NoCfCheckAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseArcWeakrefUnavailableAttr(ArcWeakrefUnavailableAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitArcWeakrefUnavailableAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseArgumentWithTypeTagAttr(ArgumentWithTypeTagAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitArgumentWithTypeTagAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseArmMveAliasAttr(ArmMveAliasAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitArmMveAliasAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseArtificialAttr(ArtificialAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitArtificialAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseAsmLabelAttr(AsmLabelAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAsmLabelAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseAssertCapabilityAttr(AssertCapabilityAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAssertCapabilityAttr(A)) return false; { Expr * *I = A->args_begin(); Expr * *E = A->args_end(); for (; I != E; ++I) { if (!getDerived().TraverseStmt(*I)) return false; } } return true; } template bool VISITORCLASS::TraverseAssertExclusiveLockAttr(AssertExclusiveLockAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAssertExclusiveLockAttr(A)) return false; { Expr * *I = A->args_begin(); Expr * *E = A->args_end(); for (; I != E; ++I) { if (!getDerived().TraverseStmt(*I)) return false; } } return true; } template bool VISITORCLASS::TraverseAssertSharedLockAttr(AssertSharedLockAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAssertSharedLockAttr(A)) return false; { Expr * *I = A->args_begin(); Expr * *E = A->args_end(); for (; I != E; ++I) { if (!getDerived().TraverseStmt(*I)) return false; } } return true; } template bool VISITORCLASS::TraverseAssumeAlignedAttr(AssumeAlignedAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAssumeAlignedAttr(A)) return false; if (!getDerived().TraverseStmt(A->getAlignment())) return false; if (!getDerived().TraverseStmt(A->getOffset())) return false; return true; } template bool VISITORCLASS::TraverseAvailabilityAttr(AvailabilityAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAvailabilityAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseBPFPreserveAccessIndexAttr(BPFPreserveAccessIndexAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitBPFPreserveAccessIndexAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseBlocksAttr(BlocksAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitBlocksAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseC11NoReturnAttr(C11NoReturnAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitC11NoReturnAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCDeclAttr(CDeclAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCDeclAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCFAuditedTransferAttr(CFAuditedTransferAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCFAuditedTransferAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCFConsumedAttr(CFConsumedAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCFConsumedAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCFGuardAttr(CFGuardAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCFGuardAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCFICanonicalJumpTableAttr(CFICanonicalJumpTableAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCFICanonicalJumpTableAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCFReturnsNotRetainedAttr(CFReturnsNotRetainedAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCFReturnsNotRetainedAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCFReturnsRetainedAttr(CFReturnsRetainedAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCFReturnsRetainedAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCFUnknownTransferAttr(CFUnknownTransferAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCFUnknownTransferAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCPUDispatchAttr(CPUDispatchAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCPUDispatchAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCPUSpecificAttr(CPUSpecificAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCPUSpecificAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCUDAConstantAttr(CUDAConstantAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCUDAConstantAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCUDADeviceAttr(CUDADeviceAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCUDADeviceAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCUDAGlobalAttr(CUDAGlobalAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCUDAGlobalAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCUDAHostAttr(CUDAHostAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCUDAHostAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCUDAInvalidTargetAttr(CUDAInvalidTargetAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCUDAInvalidTargetAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCUDALaunchBoundsAttr(CUDALaunchBoundsAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCUDALaunchBoundsAttr(A)) return false; if (!getDerived().TraverseStmt(A->getMaxThreads())) return false; if (!getDerived().TraverseStmt(A->getMinBlocks())) return false; return true; } template bool VISITORCLASS::TraverseCUDASharedAttr(CUDASharedAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCUDASharedAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCXX11NoReturnAttr(CXX11NoReturnAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCXX11NoReturnAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCallableWhenAttr(CallableWhenAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCallableWhenAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCallbackAttr(CallbackAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCallbackAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCapabilityAttr(CapabilityAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCapabilityAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCapturedRecordAttr(CapturedRecordAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCapturedRecordAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCarriesDependencyAttr(CarriesDependencyAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCarriesDependencyAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCleanupAttr(CleanupAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCleanupAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCodeSegAttr(CodeSegAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCodeSegAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseColdAttr(ColdAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitColdAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCommonAttr(CommonAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCommonAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseConstAttr(ConstAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitConstAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseConstInitAttr(ConstInitAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitConstInitAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseConstructorAttr(ConstructorAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitConstructorAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseConsumableAttr(ConsumableAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitConsumableAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseConsumableAutoCastAttr(ConsumableAutoCastAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitConsumableAutoCastAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseConsumableSetOnReadAttr(ConsumableSetOnReadAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitConsumableSetOnReadAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseConvergentAttr(ConvergentAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitConvergentAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseDLLExportAttr(DLLExportAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitDLLExportAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseDLLExportStaticLocalAttr(DLLExportStaticLocalAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitDLLExportStaticLocalAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseDLLImportAttr(DLLImportAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitDLLImportAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseDLLImportStaticLocalAttr(DLLImportStaticLocalAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitDLLImportStaticLocalAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseDeprecatedAttr(DeprecatedAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitDeprecatedAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseDestructorAttr(DestructorAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitDestructorAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseDiagnoseIfAttr(DiagnoseIfAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitDiagnoseIfAttr(A)) return false; if (!getDerived().TraverseStmt(A->getCond())) return false; return true; } template bool VISITORCLASS::TraverseDisableTailCallsAttr(DisableTailCallsAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitDisableTailCallsAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseEmptyBasesAttr(EmptyBasesAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitEmptyBasesAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseEnableIfAttr(EnableIfAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitEnableIfAttr(A)) return false; if (!getDerived().TraverseStmt(A->getCond())) return false; return true; } template bool VISITORCLASS::TraverseEnumExtensibilityAttr(EnumExtensibilityAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitEnumExtensibilityAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseExcludeFromExplicitInstantiationAttr(ExcludeFromExplicitInstantiationAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitExcludeFromExplicitInstantiationAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseExclusiveTrylockFunctionAttr(ExclusiveTrylockFunctionAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitExclusiveTrylockFunctionAttr(A)) return false; if (!getDerived().TraverseStmt(A->getSuccessValue())) return false; { Expr * *I = A->args_begin(); Expr * *E = A->args_end(); for (; I != E; ++I) { if (!getDerived().TraverseStmt(*I)) return false; } } return true; } template bool VISITORCLASS::TraverseExternalSourceSymbolAttr(ExternalSourceSymbolAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitExternalSourceSymbolAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseFallThroughAttr(FallThroughAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitFallThroughAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseFastCallAttr(FastCallAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitFastCallAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseFinalAttr(FinalAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitFinalAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseFlagEnumAttr(FlagEnumAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitFlagEnumAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseFlattenAttr(FlattenAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitFlattenAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseFormatAttr(FormatAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitFormatAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseFormatArgAttr(FormatArgAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitFormatArgAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseGNUInlineAttr(GNUInlineAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitGNUInlineAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseGuardedByAttr(GuardedByAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitGuardedByAttr(A)) return false; if (!getDerived().TraverseStmt(A->getArg())) return false; return true; } template bool VISITORCLASS::TraverseGuardedVarAttr(GuardedVarAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitGuardedVarAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseHIPPinnedShadowAttr(HIPPinnedShadowAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitHIPPinnedShadowAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseHotAttr(HotAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitHotAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseIBActionAttr(IBActionAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitIBActionAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseIBOutletAttr(IBOutletAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitIBOutletAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseIBOutletCollectionAttr(IBOutletCollectionAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitIBOutletCollectionAttr(A)) return false; if (auto *TSI = A->getInterfaceLoc()) if (!getDerived().TraverseTypeLoc(TSI->getTypeLoc())) return false; return true; } template bool VISITORCLASS::TraverseIFuncAttr(IFuncAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitIFuncAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseInitPriorityAttr(InitPriorityAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitInitPriorityAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseInitSegAttr(InitSegAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitInitSegAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseIntelOclBiccAttr(IntelOclBiccAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitIntelOclBiccAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseInternalLinkageAttr(InternalLinkageAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitInternalLinkageAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseLTOVisibilityPublicAttr(LTOVisibilityPublicAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitLTOVisibilityPublicAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseLayoutVersionAttr(LayoutVersionAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitLayoutVersionAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseLifetimeBoundAttr(LifetimeBoundAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitLifetimeBoundAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseLockReturnedAttr(LockReturnedAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitLockReturnedAttr(A)) return false; if (!getDerived().TraverseStmt(A->getArg())) return false; return true; } template bool VISITORCLASS::TraverseLocksExcludedAttr(LocksExcludedAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitLocksExcludedAttr(A)) return false; { Expr * *I = A->args_begin(); Expr * *E = A->args_end(); for (; I != E; ++I) { if (!getDerived().TraverseStmt(*I)) return false; } } return true; } template bool VISITORCLASS::TraverseLoopHintAttr(LoopHintAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitLoopHintAttr(A)) return false; if (!getDerived().TraverseStmt(A->getValue())) return false; return true; } template bool VISITORCLASS::TraverseMIGServerRoutineAttr(MIGServerRoutineAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitMIGServerRoutineAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseMSABIAttr(MSABIAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitMSABIAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseMSAllocatorAttr(MSAllocatorAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitMSAllocatorAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseMSInheritanceAttr(MSInheritanceAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitMSInheritanceAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseMSNoVTableAttr(MSNoVTableAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitMSNoVTableAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseMSP430InterruptAttr(MSP430InterruptAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitMSP430InterruptAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseMSStructAttr(MSStructAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitMSStructAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseMSVtorDispAttr(MSVtorDispAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitMSVtorDispAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseMaxFieldAlignmentAttr(MaxFieldAlignmentAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitMaxFieldAlignmentAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseMayAliasAttr(MayAliasAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitMayAliasAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseMicroMipsAttr(MicroMipsAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitMicroMipsAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseMinSizeAttr(MinSizeAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitMinSizeAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseMinVectorWidthAttr(MinVectorWidthAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitMinVectorWidthAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseMips16Attr(Mips16Attr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitMips16Attr(A)) return false; return true; } template bool VISITORCLASS::TraverseMipsInterruptAttr(MipsInterruptAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitMipsInterruptAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseMipsLongCallAttr(MipsLongCallAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitMipsLongCallAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseMipsShortCallAttr(MipsShortCallAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitMipsShortCallAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseModeAttr(ModeAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitModeAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseNSConsumedAttr(NSConsumedAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNSConsumedAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseNSConsumesSelfAttr(NSConsumesSelfAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNSConsumesSelfAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseNSReturnsAutoreleasedAttr(NSReturnsAutoreleasedAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNSReturnsAutoreleasedAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseNSReturnsNotRetainedAttr(NSReturnsNotRetainedAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNSReturnsNotRetainedAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseNSReturnsRetainedAttr(NSReturnsRetainedAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNSReturnsRetainedAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseNakedAttr(NakedAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNakedAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseNoAliasAttr(NoAliasAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNoAliasAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseNoBuiltinAttr(NoBuiltinAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNoBuiltinAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseNoCommonAttr(NoCommonAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNoCommonAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseNoDebugAttr(NoDebugAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNoDebugAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseNoDerefAttr(NoDerefAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNoDerefAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseNoDestroyAttr(NoDestroyAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNoDestroyAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseNoDuplicateAttr(NoDuplicateAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNoDuplicateAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseNoEscapeAttr(NoEscapeAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNoEscapeAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseNoInlineAttr(NoInlineAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNoInlineAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseNoInstrumentFunctionAttr(NoInstrumentFunctionAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNoInstrumentFunctionAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseNoMicroMipsAttr(NoMicroMipsAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNoMicroMipsAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseNoMips16Attr(NoMips16Attr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNoMips16Attr(A)) return false; return true; } template bool VISITORCLASS::TraverseNoReturnAttr(NoReturnAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNoReturnAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseNoSanitizeAttr(NoSanitizeAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNoSanitizeAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseNoSpeculativeLoadHardeningAttr(NoSpeculativeLoadHardeningAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNoSpeculativeLoadHardeningAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseNoSplitStackAttr(NoSplitStackAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNoSplitStackAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseNoStackProtectorAttr(NoStackProtectorAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNoStackProtectorAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseNoThreadSafetyAnalysisAttr(NoThreadSafetyAnalysisAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNoThreadSafetyAnalysisAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseNoThrowAttr(NoThrowAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNoThrowAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseNoUniqueAddressAttr(NoUniqueAddressAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNoUniqueAddressAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseNonNullAttr(NonNullAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNonNullAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseNotTailCalledAttr(NotTailCalledAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNotTailCalledAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseOMPAllocateDeclAttr(OMPAllocateDeclAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitOMPAllocateDeclAttr(A)) return false; if (!getDerived().TraverseStmt(A->getAllocator())) return false; return true; } template bool VISITORCLASS::TraverseOMPCaptureKindAttr(OMPCaptureKindAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitOMPCaptureKindAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseOMPCaptureNoInitAttr(OMPCaptureNoInitAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitOMPCaptureNoInitAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseOMPDeclareSimdDeclAttr(OMPDeclareSimdDeclAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitOMPDeclareSimdDeclAttr(A)) return false; if (!getDerived().TraverseStmt(A->getSimdlen())) return false; { Expr * *I = A->uniforms_begin(); Expr * *E = A->uniforms_end(); for (; I != E; ++I) { if (!getDerived().TraverseStmt(*I)) return false; } } { Expr * *I = A->aligneds_begin(); Expr * *E = A->aligneds_end(); for (; I != E; ++I) { if (!getDerived().TraverseStmt(*I)) return false; } } { Expr * *I = A->alignments_begin(); Expr * *E = A->alignments_end(); for (; I != E; ++I) { if (!getDerived().TraverseStmt(*I)) return false; } } { Expr * *I = A->linears_begin(); Expr * *E = A->linears_end(); for (; I != E; ++I) { if (!getDerived().TraverseStmt(*I)) return false; } } { Expr * *I = A->steps_begin(); Expr * *E = A->steps_end(); for (; I != E; ++I) { if (!getDerived().TraverseStmt(*I)) return false; } } return true; } template bool VISITORCLASS::TraverseOMPDeclareTargetDeclAttr(OMPDeclareTargetDeclAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitOMPDeclareTargetDeclAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseOMPDeclareVariantAttr(OMPDeclareVariantAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitOMPDeclareVariantAttr(A)) return false; if (!getDerived().TraverseStmt(A->getVariantFuncRef())) return false; { Expr * *I = A->scores_begin(); Expr * *E = A->scores_end(); for (; I != E; ++I) { if (!getDerived().TraverseStmt(*I)) return false; } } return true; } template bool VISITORCLASS::TraverseOMPReferencedVarAttr(OMPReferencedVarAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitOMPReferencedVarAttr(A)) return false; if (!getDerived().TraverseStmt(A->getRef())) return false; return true; } template bool VISITORCLASS::TraverseOMPThreadPrivateDeclAttr(OMPThreadPrivateDeclAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitOMPThreadPrivateDeclAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseOSConsumedAttr(OSConsumedAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitOSConsumedAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseOSConsumesThisAttr(OSConsumesThisAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitOSConsumesThisAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseOSReturnsNotRetainedAttr(OSReturnsNotRetainedAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitOSReturnsNotRetainedAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseOSReturnsRetainedAttr(OSReturnsRetainedAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitOSReturnsRetainedAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseOSReturnsRetainedOnNonZeroAttr(OSReturnsRetainedOnNonZeroAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitOSReturnsRetainedOnNonZeroAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseOSReturnsRetainedOnZeroAttr(OSReturnsRetainedOnZeroAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitOSReturnsRetainedOnZeroAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseObjCBoxableAttr(ObjCBoxableAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitObjCBoxableAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseObjCBridgeAttr(ObjCBridgeAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitObjCBridgeAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseObjCBridgeMutableAttr(ObjCBridgeMutableAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitObjCBridgeMutableAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseObjCBridgeRelatedAttr(ObjCBridgeRelatedAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitObjCBridgeRelatedAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseObjCClassStubAttr(ObjCClassStubAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitObjCClassStubAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseObjCDesignatedInitializerAttr(ObjCDesignatedInitializerAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitObjCDesignatedInitializerAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseObjCDirectAttr(ObjCDirectAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitObjCDirectAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseObjCDirectMembersAttr(ObjCDirectMembersAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitObjCDirectMembersAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseObjCExceptionAttr(ObjCExceptionAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitObjCExceptionAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseObjCExplicitProtocolImplAttr(ObjCExplicitProtocolImplAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitObjCExplicitProtocolImplAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseObjCExternallyRetainedAttr(ObjCExternallyRetainedAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitObjCExternallyRetainedAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseObjCGCAttr(ObjCGCAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitObjCGCAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseObjCIndependentClassAttr(ObjCIndependentClassAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitObjCIndependentClassAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseObjCInertUnsafeUnretainedAttr(ObjCInertUnsafeUnretainedAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitObjCInertUnsafeUnretainedAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseObjCKindOfAttr(ObjCKindOfAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitObjCKindOfAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseObjCMethodFamilyAttr(ObjCMethodFamilyAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitObjCMethodFamilyAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseObjCNSObjectAttr(ObjCNSObjectAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitObjCNSObjectAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseObjCNonLazyClassAttr(ObjCNonLazyClassAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitObjCNonLazyClassAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseObjCOwnershipAttr(ObjCOwnershipAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitObjCOwnershipAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseObjCPreciseLifetimeAttr(ObjCPreciseLifetimeAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitObjCPreciseLifetimeAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseObjCRequiresPropertyDefsAttr(ObjCRequiresPropertyDefsAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitObjCRequiresPropertyDefsAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseObjCRequiresSuperAttr(ObjCRequiresSuperAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitObjCRequiresSuperAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseObjCReturnsInnerPointerAttr(ObjCReturnsInnerPointerAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitObjCReturnsInnerPointerAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseObjCRootClassAttr(ObjCRootClassAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitObjCRootClassAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseObjCRuntimeNameAttr(ObjCRuntimeNameAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitObjCRuntimeNameAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseObjCRuntimeVisibleAttr(ObjCRuntimeVisibleAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitObjCRuntimeVisibleAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseObjCSubclassingRestrictedAttr(ObjCSubclassingRestrictedAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitObjCSubclassingRestrictedAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseOpenCLAccessAttr(OpenCLAccessAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitOpenCLAccessAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseOpenCLConstantAddressSpaceAttr(OpenCLConstantAddressSpaceAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitOpenCLConstantAddressSpaceAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseOpenCLGenericAddressSpaceAttr(OpenCLGenericAddressSpaceAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitOpenCLGenericAddressSpaceAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseOpenCLGlobalAddressSpaceAttr(OpenCLGlobalAddressSpaceAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitOpenCLGlobalAddressSpaceAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseOpenCLIntelReqdSubGroupSizeAttr(OpenCLIntelReqdSubGroupSizeAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitOpenCLIntelReqdSubGroupSizeAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseOpenCLKernelAttr(OpenCLKernelAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitOpenCLKernelAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseOpenCLLocalAddressSpaceAttr(OpenCLLocalAddressSpaceAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitOpenCLLocalAddressSpaceAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseOpenCLPrivateAddressSpaceAttr(OpenCLPrivateAddressSpaceAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitOpenCLPrivateAddressSpaceAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseOpenCLUnrollHintAttr(OpenCLUnrollHintAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitOpenCLUnrollHintAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseOptimizeNoneAttr(OptimizeNoneAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitOptimizeNoneAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseOverloadableAttr(OverloadableAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitOverloadableAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseOverrideAttr(OverrideAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitOverrideAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseOwnerAttr(OwnerAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitOwnerAttr(A)) return false; if (auto *TSI = A->getDerefTypeLoc()) if (!getDerived().TraverseTypeLoc(TSI->getTypeLoc())) return false; return true; } template bool VISITORCLASS::TraverseOwnershipAttr(OwnershipAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitOwnershipAttr(A)) return false; return true; } template bool VISITORCLASS::TraversePackedAttr(PackedAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitPackedAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseParamTypestateAttr(ParamTypestateAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitParamTypestateAttr(A)) return false; return true; } template bool VISITORCLASS::TraversePascalAttr(PascalAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitPascalAttr(A)) return false; return true; } template bool VISITORCLASS::TraversePassObjectSizeAttr(PassObjectSizeAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitPassObjectSizeAttr(A)) return false; return true; } template bool VISITORCLASS::TraversePatchableFunctionEntryAttr(PatchableFunctionEntryAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitPatchableFunctionEntryAttr(A)) return false; return true; } template bool VISITORCLASS::TraversePcsAttr(PcsAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitPcsAttr(A)) return false; return true; } template bool VISITORCLASS::TraversePointerAttr(PointerAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitPointerAttr(A)) return false; if (auto *TSI = A->getDerefTypeLoc()) if (!getDerived().TraverseTypeLoc(TSI->getTypeLoc())) return false; return true; } template bool VISITORCLASS::TraversePragmaClangBSSSectionAttr(PragmaClangBSSSectionAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitPragmaClangBSSSectionAttr(A)) return false; return true; } template bool VISITORCLASS::TraversePragmaClangDataSectionAttr(PragmaClangDataSectionAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitPragmaClangDataSectionAttr(A)) return false; return true; } template bool VISITORCLASS::TraversePragmaClangRelroSectionAttr(PragmaClangRelroSectionAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitPragmaClangRelroSectionAttr(A)) return false; return true; } template bool VISITORCLASS::TraversePragmaClangRodataSectionAttr(PragmaClangRodataSectionAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitPragmaClangRodataSectionAttr(A)) return false; return true; } template bool VISITORCLASS::TraversePragmaClangTextSectionAttr(PragmaClangTextSectionAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitPragmaClangTextSectionAttr(A)) return false; return true; } template bool VISITORCLASS::TraversePreserveAllAttr(PreserveAllAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitPreserveAllAttr(A)) return false; return true; } template bool VISITORCLASS::TraversePreserveMostAttr(PreserveMostAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitPreserveMostAttr(A)) return false; return true; } template bool VISITORCLASS::TraversePtGuardedByAttr(PtGuardedByAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitPtGuardedByAttr(A)) return false; if (!getDerived().TraverseStmt(A->getArg())) return false; return true; } template bool VISITORCLASS::TraversePtGuardedVarAttr(PtGuardedVarAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitPtGuardedVarAttr(A)) return false; return true; } template bool VISITORCLASS::TraversePtr32Attr(Ptr32Attr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitPtr32Attr(A)) return false; return true; } template bool VISITORCLASS::TraversePtr64Attr(Ptr64Attr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitPtr64Attr(A)) return false; return true; } template bool VISITORCLASS::TraversePureAttr(PureAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitPureAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseRISCVInterruptAttr(RISCVInterruptAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitRISCVInterruptAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseRegCallAttr(RegCallAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitRegCallAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseReinitializesAttr(ReinitializesAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitReinitializesAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseReleaseCapabilityAttr(ReleaseCapabilityAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitReleaseCapabilityAttr(A)) return false; { Expr * *I = A->args_begin(); Expr * *E = A->args_end(); for (; I != E; ++I) { if (!getDerived().TraverseStmt(*I)) return false; } } return true; } template bool VISITORCLASS::TraverseReleaseHandleAttr(ReleaseHandleAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitReleaseHandleAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseRenderScriptKernelAttr(RenderScriptKernelAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitRenderScriptKernelAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseReqdWorkGroupSizeAttr(ReqdWorkGroupSizeAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitReqdWorkGroupSizeAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseRequiresCapabilityAttr(RequiresCapabilityAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitRequiresCapabilityAttr(A)) return false; { Expr * *I = A->args_begin(); Expr * *E = A->args_end(); for (; I != E; ++I) { if (!getDerived().TraverseStmt(*I)) return false; } } return true; } template bool VISITORCLASS::TraverseRestrictAttr(RestrictAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitRestrictAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseReturnTypestateAttr(ReturnTypestateAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitReturnTypestateAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseReturnsNonNullAttr(ReturnsNonNullAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitReturnsNonNullAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseReturnsTwiceAttr(ReturnsTwiceAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitReturnsTwiceAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseSPtrAttr(SPtrAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSPtrAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseSYCLKernelAttr(SYCLKernelAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSYCLKernelAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseScopedLockableAttr(ScopedLockableAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitScopedLockableAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseSectionAttr(SectionAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSectionAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseSelectAnyAttr(SelectAnyAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSelectAnyAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseSentinelAttr(SentinelAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSentinelAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseSetTypestateAttr(SetTypestateAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSetTypestateAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseSharedTrylockFunctionAttr(SharedTrylockFunctionAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSharedTrylockFunctionAttr(A)) return false; if (!getDerived().TraverseStmt(A->getSuccessValue())) return false; { Expr * *I = A->args_begin(); Expr * *E = A->args_end(); for (; I != E; ++I) { if (!getDerived().TraverseStmt(*I)) return false; } } return true; } template bool VISITORCLASS::TraverseSpeculativeLoadHardeningAttr(SpeculativeLoadHardeningAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSpeculativeLoadHardeningAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseStdCallAttr(StdCallAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitStdCallAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseSuppressAttr(SuppressAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSuppressAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseSwiftCallAttr(SwiftCallAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSwiftCallAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseSwiftContextAttr(SwiftContextAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSwiftContextAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseSwiftErrorResultAttr(SwiftErrorResultAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSwiftErrorResultAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseSwiftIndirectResultAttr(SwiftIndirectResultAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSwiftIndirectResultAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseSysVABIAttr(SysVABIAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSysVABIAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseTLSModelAttr(TLSModelAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitTLSModelAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseTargetAttr(TargetAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitTargetAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseTestTypestateAttr(TestTypestateAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitTestTypestateAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseThisCallAttr(ThisCallAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitThisCallAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseThreadAttr(ThreadAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitThreadAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseTransparentUnionAttr(TransparentUnionAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitTransparentUnionAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseTrivialABIAttr(TrivialABIAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitTrivialABIAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseTryAcquireCapabilityAttr(TryAcquireCapabilityAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitTryAcquireCapabilityAttr(A)) return false; if (!getDerived().TraverseStmt(A->getSuccessValue())) return false; { Expr * *I = A->args_begin(); Expr * *E = A->args_end(); for (; I != E; ++I) { if (!getDerived().TraverseStmt(*I)) return false; } } return true; } template bool VISITORCLASS::TraverseTypeNonNullAttr(TypeNonNullAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitTypeNonNullAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseTypeNullUnspecifiedAttr(TypeNullUnspecifiedAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitTypeNullUnspecifiedAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseTypeNullableAttr(TypeNullableAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitTypeNullableAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseTypeTagForDatatypeAttr(TypeTagForDatatypeAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitTypeTagForDatatypeAttr(A)) return false; if (auto *TSI = A->getMatchingCTypeLoc()) if (!getDerived().TraverseTypeLoc(TSI->getTypeLoc())) return false; return true; } template bool VISITORCLASS::TraverseTypeVisibilityAttr(TypeVisibilityAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitTypeVisibilityAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseUPtrAttr(UPtrAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitUPtrAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseUnavailableAttr(UnavailableAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitUnavailableAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseUninitializedAttr(UninitializedAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitUninitializedAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseUnusedAttr(UnusedAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitUnusedAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseUseHandleAttr(UseHandleAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitUseHandleAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseUsedAttr(UsedAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitUsedAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseUuidAttr(UuidAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitUuidAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseVecReturnAttr(VecReturnAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitVecReturnAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseVecTypeHintAttr(VecTypeHintAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitVecTypeHintAttr(A)) return false; if (auto *TSI = A->getTypeHintLoc()) if (!getDerived().TraverseTypeLoc(TSI->getTypeLoc())) return false; return true; } template bool VISITORCLASS::TraverseVectorCallAttr(VectorCallAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitVectorCallAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseVisibilityAttr(VisibilityAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitVisibilityAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseWarnUnusedAttr(WarnUnusedAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitWarnUnusedAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseWarnUnusedResultAttr(WarnUnusedResultAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitWarnUnusedResultAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseWeakAttr(WeakAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitWeakAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseWeakImportAttr(WeakImportAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitWeakImportAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseWeakRefAttr(WeakRefAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitWeakRefAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseWebAssemblyExportNameAttr(WebAssemblyExportNameAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitWebAssemblyExportNameAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseWebAssemblyImportModuleAttr(WebAssemblyImportModuleAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitWebAssemblyImportModuleAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseWebAssemblyImportNameAttr(WebAssemblyImportNameAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitWebAssemblyImportNameAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseWorkGroupSizeHintAttr(WorkGroupSizeHintAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitWorkGroupSizeHintAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseX86ForceAlignArgPointerAttr(X86ForceAlignArgPointerAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitX86ForceAlignArgPointerAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseXRayInstrumentAttr(XRayInstrumentAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitXRayInstrumentAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseXRayLogArgsAttr(XRayLogArgsAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitXRayLogArgsAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseAttr(Attr *A) { if (!A) return true; switch (A->getKind()) { case attr::AArch64VectorPcs: return getDerived().TraverseAArch64VectorPcsAttr(cast(A)); case attr::AMDGPUFlatWorkGroupSize: return getDerived().TraverseAMDGPUFlatWorkGroupSizeAttr(cast(A)); case attr::AMDGPUNumSGPR: return getDerived().TraverseAMDGPUNumSGPRAttr(cast(A)); case attr::AMDGPUNumVGPR: return getDerived().TraverseAMDGPUNumVGPRAttr(cast(A)); case attr::AMDGPUWavesPerEU: return getDerived().TraverseAMDGPUWavesPerEUAttr(cast(A)); case attr::ARMInterrupt: return getDerived().TraverseARMInterruptAttr(cast(A)); case attr::AVRInterrupt: return getDerived().TraverseAVRInterruptAttr(cast(A)); case attr::AVRSignal: return getDerived().TraverseAVRSignalAttr(cast(A)); case attr::AbiTag: return getDerived().TraverseAbiTagAttr(cast(A)); case attr::AcquireCapability: return getDerived().TraverseAcquireCapabilityAttr(cast(A)); case attr::AcquireHandle: return getDerived().TraverseAcquireHandleAttr(cast(A)); case attr::AcquiredAfter: return getDerived().TraverseAcquiredAfterAttr(cast(A)); case attr::AcquiredBefore: return getDerived().TraverseAcquiredBeforeAttr(cast(A)); case attr::AddressSpace: return getDerived().TraverseAddressSpaceAttr(cast(A)); case attr::Alias: return getDerived().TraverseAliasAttr(cast(A)); case attr::AlignMac68k: return getDerived().TraverseAlignMac68kAttr(cast(A)); case attr::AlignValue: return getDerived().TraverseAlignValueAttr(cast(A)); case attr::Aligned: return getDerived().TraverseAlignedAttr(cast(A)); case attr::AllocAlign: return getDerived().TraverseAllocAlignAttr(cast(A)); case attr::AllocSize: return getDerived().TraverseAllocSizeAttr(cast(A)); case attr::AlwaysDestroy: return getDerived().TraverseAlwaysDestroyAttr(cast(A)); case attr::AlwaysInline: return getDerived().TraverseAlwaysInlineAttr(cast(A)); case attr::AnalyzerNoReturn: return getDerived().TraverseAnalyzerNoReturnAttr(cast(A)); case attr::Annotate: return getDerived().TraverseAnnotateAttr(cast(A)); case attr::AnyX86Interrupt: return getDerived().TraverseAnyX86InterruptAttr(cast(A)); case attr::AnyX86NoCallerSavedRegisters: return getDerived().TraverseAnyX86NoCallerSavedRegistersAttr(cast(A)); case attr::AnyX86NoCfCheck: return getDerived().TraverseAnyX86NoCfCheckAttr(cast(A)); case attr::ArcWeakrefUnavailable: return getDerived().TraverseArcWeakrefUnavailableAttr(cast(A)); case attr::ArgumentWithTypeTag: return getDerived().TraverseArgumentWithTypeTagAttr(cast(A)); case attr::ArmMveAlias: return getDerived().TraverseArmMveAliasAttr(cast(A)); case attr::Artificial: return getDerived().TraverseArtificialAttr(cast(A)); case attr::AsmLabel: return getDerived().TraverseAsmLabelAttr(cast(A)); case attr::AssertCapability: return getDerived().TraverseAssertCapabilityAttr(cast(A)); case attr::AssertExclusiveLock: return getDerived().TraverseAssertExclusiveLockAttr(cast(A)); case attr::AssertSharedLock: return getDerived().TraverseAssertSharedLockAttr(cast(A)); case attr::AssumeAligned: return getDerived().TraverseAssumeAlignedAttr(cast(A)); case attr::Availability: return getDerived().TraverseAvailabilityAttr(cast(A)); case attr::BPFPreserveAccessIndex: return getDerived().TraverseBPFPreserveAccessIndexAttr(cast(A)); case attr::Blocks: return getDerived().TraverseBlocksAttr(cast(A)); case attr::C11NoReturn: return getDerived().TraverseC11NoReturnAttr(cast(A)); case attr::CDecl: return getDerived().TraverseCDeclAttr(cast(A)); case attr::CFAuditedTransfer: return getDerived().TraverseCFAuditedTransferAttr(cast(A)); case attr::CFConsumed: return getDerived().TraverseCFConsumedAttr(cast(A)); case attr::CFGuard: return getDerived().TraverseCFGuardAttr(cast(A)); case attr::CFICanonicalJumpTable: return getDerived().TraverseCFICanonicalJumpTableAttr(cast(A)); case attr::CFReturnsNotRetained: return getDerived().TraverseCFReturnsNotRetainedAttr(cast(A)); case attr::CFReturnsRetained: return getDerived().TraverseCFReturnsRetainedAttr(cast(A)); case attr::CFUnknownTransfer: return getDerived().TraverseCFUnknownTransferAttr(cast(A)); case attr::CPUDispatch: return getDerived().TraverseCPUDispatchAttr(cast(A)); case attr::CPUSpecific: return getDerived().TraverseCPUSpecificAttr(cast(A)); case attr::CUDAConstant: return getDerived().TraverseCUDAConstantAttr(cast(A)); case attr::CUDADevice: return getDerived().TraverseCUDADeviceAttr(cast(A)); case attr::CUDAGlobal: return getDerived().TraverseCUDAGlobalAttr(cast(A)); case attr::CUDAHost: return getDerived().TraverseCUDAHostAttr(cast(A)); case attr::CUDAInvalidTarget: return getDerived().TraverseCUDAInvalidTargetAttr(cast(A)); case attr::CUDALaunchBounds: return getDerived().TraverseCUDALaunchBoundsAttr(cast(A)); case attr::CUDAShared: return getDerived().TraverseCUDASharedAttr(cast(A)); case attr::CXX11NoReturn: return getDerived().TraverseCXX11NoReturnAttr(cast(A)); case attr::CallableWhen: return getDerived().TraverseCallableWhenAttr(cast(A)); case attr::Callback: return getDerived().TraverseCallbackAttr(cast(A)); case attr::Capability: return getDerived().TraverseCapabilityAttr(cast(A)); case attr::CapturedRecord: return getDerived().TraverseCapturedRecordAttr(cast(A)); case attr::CarriesDependency: return getDerived().TraverseCarriesDependencyAttr(cast(A)); case attr::Cleanup: return getDerived().TraverseCleanupAttr(cast(A)); case attr::CodeSeg: return getDerived().TraverseCodeSegAttr(cast(A)); case attr::Cold: return getDerived().TraverseColdAttr(cast(A)); case attr::Common: return getDerived().TraverseCommonAttr(cast(A)); case attr::Const: return getDerived().TraverseConstAttr(cast(A)); case attr::ConstInit: return getDerived().TraverseConstInitAttr(cast(A)); case attr::Constructor: return getDerived().TraverseConstructorAttr(cast(A)); case attr::Consumable: return getDerived().TraverseConsumableAttr(cast(A)); case attr::ConsumableAutoCast: return getDerived().TraverseConsumableAutoCastAttr(cast(A)); case attr::ConsumableSetOnRead: return getDerived().TraverseConsumableSetOnReadAttr(cast(A)); case attr::Convergent: return getDerived().TraverseConvergentAttr(cast(A)); case attr::DLLExport: return getDerived().TraverseDLLExportAttr(cast(A)); case attr::DLLExportStaticLocal: return getDerived().TraverseDLLExportStaticLocalAttr(cast(A)); case attr::DLLImport: return getDerived().TraverseDLLImportAttr(cast(A)); case attr::DLLImportStaticLocal: return getDerived().TraverseDLLImportStaticLocalAttr(cast(A)); case attr::Deprecated: return getDerived().TraverseDeprecatedAttr(cast(A)); case attr::Destructor: return getDerived().TraverseDestructorAttr(cast(A)); case attr::DiagnoseIf: return getDerived().TraverseDiagnoseIfAttr(cast(A)); case attr::DisableTailCalls: return getDerived().TraverseDisableTailCallsAttr(cast(A)); case attr::EmptyBases: return getDerived().TraverseEmptyBasesAttr(cast(A)); case attr::EnableIf: return getDerived().TraverseEnableIfAttr(cast(A)); case attr::EnumExtensibility: return getDerived().TraverseEnumExtensibilityAttr(cast(A)); case attr::ExcludeFromExplicitInstantiation: return getDerived().TraverseExcludeFromExplicitInstantiationAttr(cast(A)); case attr::ExclusiveTrylockFunction: return getDerived().TraverseExclusiveTrylockFunctionAttr(cast(A)); case attr::ExternalSourceSymbol: return getDerived().TraverseExternalSourceSymbolAttr(cast(A)); case attr::FallThrough: return getDerived().TraverseFallThroughAttr(cast(A)); case attr::FastCall: return getDerived().TraverseFastCallAttr(cast(A)); case attr::Final: return getDerived().TraverseFinalAttr(cast(A)); case attr::FlagEnum: return getDerived().TraverseFlagEnumAttr(cast(A)); case attr::Flatten: return getDerived().TraverseFlattenAttr(cast(A)); case attr::Format: return getDerived().TraverseFormatAttr(cast(A)); case attr::FormatArg: return getDerived().TraverseFormatArgAttr(cast(A)); case attr::GNUInline: return getDerived().TraverseGNUInlineAttr(cast(A)); case attr::GuardedBy: return getDerived().TraverseGuardedByAttr(cast(A)); case attr::GuardedVar: return getDerived().TraverseGuardedVarAttr(cast(A)); case attr::HIPPinnedShadow: return getDerived().TraverseHIPPinnedShadowAttr(cast(A)); case attr::Hot: return getDerived().TraverseHotAttr(cast(A)); case attr::IBAction: return getDerived().TraverseIBActionAttr(cast(A)); case attr::IBOutlet: return getDerived().TraverseIBOutletAttr(cast(A)); case attr::IBOutletCollection: return getDerived().TraverseIBOutletCollectionAttr(cast(A)); case attr::IFunc: return getDerived().TraverseIFuncAttr(cast(A)); case attr::InitPriority: return getDerived().TraverseInitPriorityAttr(cast(A)); case attr::InitSeg: return getDerived().TraverseInitSegAttr(cast(A)); case attr::IntelOclBicc: return getDerived().TraverseIntelOclBiccAttr(cast(A)); case attr::InternalLinkage: return getDerived().TraverseInternalLinkageAttr(cast(A)); case attr::LTOVisibilityPublic: return getDerived().TraverseLTOVisibilityPublicAttr(cast(A)); case attr::LayoutVersion: return getDerived().TraverseLayoutVersionAttr(cast(A)); case attr::LifetimeBound: return getDerived().TraverseLifetimeBoundAttr(cast(A)); case attr::LockReturned: return getDerived().TraverseLockReturnedAttr(cast(A)); case attr::LocksExcluded: return getDerived().TraverseLocksExcludedAttr(cast(A)); case attr::LoopHint: return getDerived().TraverseLoopHintAttr(cast(A)); case attr::MIGServerRoutine: return getDerived().TraverseMIGServerRoutineAttr(cast(A)); case attr::MSABI: return getDerived().TraverseMSABIAttr(cast(A)); case attr::MSAllocator: return getDerived().TraverseMSAllocatorAttr(cast(A)); case attr::MSInheritance: return getDerived().TraverseMSInheritanceAttr(cast(A)); case attr::MSNoVTable: return getDerived().TraverseMSNoVTableAttr(cast(A)); case attr::MSP430Interrupt: return getDerived().TraverseMSP430InterruptAttr(cast(A)); case attr::MSStruct: return getDerived().TraverseMSStructAttr(cast(A)); case attr::MSVtorDisp: return getDerived().TraverseMSVtorDispAttr(cast(A)); case attr::MaxFieldAlignment: return getDerived().TraverseMaxFieldAlignmentAttr(cast(A)); case attr::MayAlias: return getDerived().TraverseMayAliasAttr(cast(A)); case attr::MicroMips: return getDerived().TraverseMicroMipsAttr(cast(A)); case attr::MinSize: return getDerived().TraverseMinSizeAttr(cast(A)); case attr::MinVectorWidth: return getDerived().TraverseMinVectorWidthAttr(cast(A)); case attr::Mips16: return getDerived().TraverseMips16Attr(cast(A)); case attr::MipsInterrupt: return getDerived().TraverseMipsInterruptAttr(cast(A)); case attr::MipsLongCall: return getDerived().TraverseMipsLongCallAttr(cast(A)); case attr::MipsShortCall: return getDerived().TraverseMipsShortCallAttr(cast(A)); case attr::Mode: return getDerived().TraverseModeAttr(cast(A)); case attr::NSConsumed: return getDerived().TraverseNSConsumedAttr(cast(A)); case attr::NSConsumesSelf: return getDerived().TraverseNSConsumesSelfAttr(cast(A)); case attr::NSReturnsAutoreleased: return getDerived().TraverseNSReturnsAutoreleasedAttr(cast(A)); case attr::NSReturnsNotRetained: return getDerived().TraverseNSReturnsNotRetainedAttr(cast(A)); case attr::NSReturnsRetained: return getDerived().TraverseNSReturnsRetainedAttr(cast(A)); case attr::Naked: return getDerived().TraverseNakedAttr(cast(A)); case attr::NoAlias: return getDerived().TraverseNoAliasAttr(cast(A)); case attr::NoBuiltin: return getDerived().TraverseNoBuiltinAttr(cast(A)); case attr::NoCommon: return getDerived().TraverseNoCommonAttr(cast(A)); case attr::NoDebug: return getDerived().TraverseNoDebugAttr(cast(A)); case attr::NoDeref: return getDerived().TraverseNoDerefAttr(cast(A)); case attr::NoDestroy: return getDerived().TraverseNoDestroyAttr(cast(A)); case attr::NoDuplicate: return getDerived().TraverseNoDuplicateAttr(cast(A)); case attr::NoEscape: return getDerived().TraverseNoEscapeAttr(cast(A)); case attr::NoInline: return getDerived().TraverseNoInlineAttr(cast(A)); case attr::NoInstrumentFunction: return getDerived().TraverseNoInstrumentFunctionAttr(cast(A)); case attr::NoMicroMips: return getDerived().TraverseNoMicroMipsAttr(cast(A)); case attr::NoMips16: return getDerived().TraverseNoMips16Attr(cast(A)); case attr::NoReturn: return getDerived().TraverseNoReturnAttr(cast(A)); case attr::NoSanitize: return getDerived().TraverseNoSanitizeAttr(cast(A)); case attr::NoSpeculativeLoadHardening: return getDerived().TraverseNoSpeculativeLoadHardeningAttr(cast(A)); case attr::NoSplitStack: return getDerived().TraverseNoSplitStackAttr(cast(A)); case attr::NoStackProtector: return getDerived().TraverseNoStackProtectorAttr(cast(A)); case attr::NoThreadSafetyAnalysis: return getDerived().TraverseNoThreadSafetyAnalysisAttr(cast(A)); case attr::NoThrow: return getDerived().TraverseNoThrowAttr(cast(A)); case attr::NoUniqueAddress: return getDerived().TraverseNoUniqueAddressAttr(cast(A)); case attr::NonNull: return getDerived().TraverseNonNullAttr(cast(A)); case attr::NotTailCalled: return getDerived().TraverseNotTailCalledAttr(cast(A)); case attr::OMPAllocateDecl: return getDerived().TraverseOMPAllocateDeclAttr(cast(A)); case attr::OMPCaptureKind: return getDerived().TraverseOMPCaptureKindAttr(cast(A)); case attr::OMPCaptureNoInit: return getDerived().TraverseOMPCaptureNoInitAttr(cast(A)); case attr::OMPDeclareSimdDecl: return getDerived().TraverseOMPDeclareSimdDeclAttr(cast(A)); case attr::OMPDeclareTargetDecl: return getDerived().TraverseOMPDeclareTargetDeclAttr(cast(A)); case attr::OMPDeclareVariant: return getDerived().TraverseOMPDeclareVariantAttr(cast(A)); case attr::OMPReferencedVar: return getDerived().TraverseOMPReferencedVarAttr(cast(A)); case attr::OMPThreadPrivateDecl: return getDerived().TraverseOMPThreadPrivateDeclAttr(cast(A)); case attr::OSConsumed: return getDerived().TraverseOSConsumedAttr(cast(A)); case attr::OSConsumesThis: return getDerived().TraverseOSConsumesThisAttr(cast(A)); case attr::OSReturnsNotRetained: return getDerived().TraverseOSReturnsNotRetainedAttr(cast(A)); case attr::OSReturnsRetained: return getDerived().TraverseOSReturnsRetainedAttr(cast(A)); case attr::OSReturnsRetainedOnNonZero: return getDerived().TraverseOSReturnsRetainedOnNonZeroAttr(cast(A)); case attr::OSReturnsRetainedOnZero: return getDerived().TraverseOSReturnsRetainedOnZeroAttr(cast(A)); case attr::ObjCBoxable: return getDerived().TraverseObjCBoxableAttr(cast(A)); case attr::ObjCBridge: return getDerived().TraverseObjCBridgeAttr(cast(A)); case attr::ObjCBridgeMutable: return getDerived().TraverseObjCBridgeMutableAttr(cast(A)); case attr::ObjCBridgeRelated: return getDerived().TraverseObjCBridgeRelatedAttr(cast(A)); case attr::ObjCClassStub: return getDerived().TraverseObjCClassStubAttr(cast(A)); case attr::ObjCDesignatedInitializer: return getDerived().TraverseObjCDesignatedInitializerAttr(cast(A)); case attr::ObjCDirect: return getDerived().TraverseObjCDirectAttr(cast(A)); case attr::ObjCDirectMembers: return getDerived().TraverseObjCDirectMembersAttr(cast(A)); case attr::ObjCException: return getDerived().TraverseObjCExceptionAttr(cast(A)); case attr::ObjCExplicitProtocolImpl: return getDerived().TraverseObjCExplicitProtocolImplAttr(cast(A)); case attr::ObjCExternallyRetained: return getDerived().TraverseObjCExternallyRetainedAttr(cast(A)); case attr::ObjCGC: return getDerived().TraverseObjCGCAttr(cast(A)); case attr::ObjCIndependentClass: return getDerived().TraverseObjCIndependentClassAttr(cast(A)); case attr::ObjCInertUnsafeUnretained: return getDerived().TraverseObjCInertUnsafeUnretainedAttr(cast(A)); case attr::ObjCKindOf: return getDerived().TraverseObjCKindOfAttr(cast(A)); case attr::ObjCMethodFamily: return getDerived().TraverseObjCMethodFamilyAttr(cast(A)); case attr::ObjCNSObject: return getDerived().TraverseObjCNSObjectAttr(cast(A)); case attr::ObjCNonLazyClass: return getDerived().TraverseObjCNonLazyClassAttr(cast(A)); case attr::ObjCOwnership: return getDerived().TraverseObjCOwnershipAttr(cast(A)); case attr::ObjCPreciseLifetime: return getDerived().TraverseObjCPreciseLifetimeAttr(cast(A)); case attr::ObjCRequiresPropertyDefs: return getDerived().TraverseObjCRequiresPropertyDefsAttr(cast(A)); case attr::ObjCRequiresSuper: return getDerived().TraverseObjCRequiresSuperAttr(cast(A)); case attr::ObjCReturnsInnerPointer: return getDerived().TraverseObjCReturnsInnerPointerAttr(cast(A)); case attr::ObjCRootClass: return getDerived().TraverseObjCRootClassAttr(cast(A)); case attr::ObjCRuntimeName: return getDerived().TraverseObjCRuntimeNameAttr(cast(A)); case attr::ObjCRuntimeVisible: return getDerived().TraverseObjCRuntimeVisibleAttr(cast(A)); case attr::ObjCSubclassingRestricted: return getDerived().TraverseObjCSubclassingRestrictedAttr(cast(A)); case attr::OpenCLAccess: return getDerived().TraverseOpenCLAccessAttr(cast(A)); case attr::OpenCLConstantAddressSpace: return getDerived().TraverseOpenCLConstantAddressSpaceAttr(cast(A)); case attr::OpenCLGenericAddressSpace: return getDerived().TraverseOpenCLGenericAddressSpaceAttr(cast(A)); case attr::OpenCLGlobalAddressSpace: return getDerived().TraverseOpenCLGlobalAddressSpaceAttr(cast(A)); case attr::OpenCLIntelReqdSubGroupSize: return getDerived().TraverseOpenCLIntelReqdSubGroupSizeAttr(cast(A)); case attr::OpenCLKernel: return getDerived().TraverseOpenCLKernelAttr(cast(A)); case attr::OpenCLLocalAddressSpace: return getDerived().TraverseOpenCLLocalAddressSpaceAttr(cast(A)); case attr::OpenCLPrivateAddressSpace: return getDerived().TraverseOpenCLPrivateAddressSpaceAttr(cast(A)); case attr::OpenCLUnrollHint: return getDerived().TraverseOpenCLUnrollHintAttr(cast(A)); case attr::OptimizeNone: return getDerived().TraverseOptimizeNoneAttr(cast(A)); case attr::Overloadable: return getDerived().TraverseOverloadableAttr(cast(A)); case attr::Override: return getDerived().TraverseOverrideAttr(cast(A)); case attr::Owner: return getDerived().TraverseOwnerAttr(cast(A)); case attr::Ownership: return getDerived().TraverseOwnershipAttr(cast(A)); case attr::Packed: return getDerived().TraversePackedAttr(cast(A)); case attr::ParamTypestate: return getDerived().TraverseParamTypestateAttr(cast(A)); case attr::Pascal: return getDerived().TraversePascalAttr(cast(A)); case attr::PassObjectSize: return getDerived().TraversePassObjectSizeAttr(cast(A)); case attr::PatchableFunctionEntry: return getDerived().TraversePatchableFunctionEntryAttr(cast(A)); case attr::Pcs: return getDerived().TraversePcsAttr(cast(A)); case attr::Pointer: return getDerived().TraversePointerAttr(cast(A)); case attr::PragmaClangBSSSection: return getDerived().TraversePragmaClangBSSSectionAttr(cast(A)); case attr::PragmaClangDataSection: return getDerived().TraversePragmaClangDataSectionAttr(cast(A)); case attr::PragmaClangRelroSection: return getDerived().TraversePragmaClangRelroSectionAttr(cast(A)); case attr::PragmaClangRodataSection: return getDerived().TraversePragmaClangRodataSectionAttr(cast(A)); case attr::PragmaClangTextSection: return getDerived().TraversePragmaClangTextSectionAttr(cast(A)); case attr::PreserveAll: return getDerived().TraversePreserveAllAttr(cast(A)); case attr::PreserveMost: return getDerived().TraversePreserveMostAttr(cast(A)); case attr::PtGuardedBy: return getDerived().TraversePtGuardedByAttr(cast(A)); case attr::PtGuardedVar: return getDerived().TraversePtGuardedVarAttr(cast(A)); case attr::Ptr32: return getDerived().TraversePtr32Attr(cast(A)); case attr::Ptr64: return getDerived().TraversePtr64Attr(cast(A)); case attr::Pure: return getDerived().TraversePureAttr(cast(A)); case attr::RISCVInterrupt: return getDerived().TraverseRISCVInterruptAttr(cast(A)); case attr::RegCall: return getDerived().TraverseRegCallAttr(cast(A)); case attr::Reinitializes: return getDerived().TraverseReinitializesAttr(cast(A)); case attr::ReleaseCapability: return getDerived().TraverseReleaseCapabilityAttr(cast(A)); case attr::ReleaseHandle: return getDerived().TraverseReleaseHandleAttr(cast(A)); case attr::RenderScriptKernel: return getDerived().TraverseRenderScriptKernelAttr(cast(A)); case attr::ReqdWorkGroupSize: return getDerived().TraverseReqdWorkGroupSizeAttr(cast(A)); case attr::RequiresCapability: return getDerived().TraverseRequiresCapabilityAttr(cast(A)); case attr::Restrict: return getDerived().TraverseRestrictAttr(cast(A)); case attr::ReturnTypestate: return getDerived().TraverseReturnTypestateAttr(cast(A)); case attr::ReturnsNonNull: return getDerived().TraverseReturnsNonNullAttr(cast(A)); case attr::ReturnsTwice: return getDerived().TraverseReturnsTwiceAttr(cast(A)); case attr::SPtr: return getDerived().TraverseSPtrAttr(cast(A)); case attr::SYCLKernel: return getDerived().TraverseSYCLKernelAttr(cast(A)); case attr::ScopedLockable: return getDerived().TraverseScopedLockableAttr(cast(A)); case attr::Section: return getDerived().TraverseSectionAttr(cast(A)); case attr::SelectAny: return getDerived().TraverseSelectAnyAttr(cast(A)); case attr::Sentinel: return getDerived().TraverseSentinelAttr(cast(A)); case attr::SetTypestate: return getDerived().TraverseSetTypestateAttr(cast(A)); case attr::SharedTrylockFunction: return getDerived().TraverseSharedTrylockFunctionAttr(cast(A)); case attr::SpeculativeLoadHardening: return getDerived().TraverseSpeculativeLoadHardeningAttr(cast(A)); case attr::StdCall: return getDerived().TraverseStdCallAttr(cast(A)); case attr::Suppress: return getDerived().TraverseSuppressAttr(cast(A)); case attr::SwiftCall: return getDerived().TraverseSwiftCallAttr(cast(A)); case attr::SwiftContext: return getDerived().TraverseSwiftContextAttr(cast(A)); case attr::SwiftErrorResult: return getDerived().TraverseSwiftErrorResultAttr(cast(A)); case attr::SwiftIndirectResult: return getDerived().TraverseSwiftIndirectResultAttr(cast(A)); case attr::SysVABI: return getDerived().TraverseSysVABIAttr(cast(A)); case attr::TLSModel: return getDerived().TraverseTLSModelAttr(cast(A)); case attr::Target: return getDerived().TraverseTargetAttr(cast(A)); case attr::TestTypestate: return getDerived().TraverseTestTypestateAttr(cast(A)); case attr::ThisCall: return getDerived().TraverseThisCallAttr(cast(A)); case attr::Thread: return getDerived().TraverseThreadAttr(cast(A)); case attr::TransparentUnion: return getDerived().TraverseTransparentUnionAttr(cast(A)); case attr::TrivialABI: return getDerived().TraverseTrivialABIAttr(cast(A)); case attr::TryAcquireCapability: return getDerived().TraverseTryAcquireCapabilityAttr(cast(A)); case attr::TypeNonNull: return getDerived().TraverseTypeNonNullAttr(cast(A)); case attr::TypeNullUnspecified: return getDerived().TraverseTypeNullUnspecifiedAttr(cast(A)); case attr::TypeNullable: return getDerived().TraverseTypeNullableAttr(cast(A)); case attr::TypeTagForDatatype: return getDerived().TraverseTypeTagForDatatypeAttr(cast(A)); case attr::TypeVisibility: return getDerived().TraverseTypeVisibilityAttr(cast(A)); case attr::UPtr: return getDerived().TraverseUPtrAttr(cast(A)); case attr::Unavailable: return getDerived().TraverseUnavailableAttr(cast(A)); case attr::Uninitialized: return getDerived().TraverseUninitializedAttr(cast(A)); case attr::Unused: return getDerived().TraverseUnusedAttr(cast(A)); case attr::UseHandle: return getDerived().TraverseUseHandleAttr(cast(A)); case attr::Used: return getDerived().TraverseUsedAttr(cast(A)); case attr::Uuid: return getDerived().TraverseUuidAttr(cast(A)); case attr::VecReturn: return getDerived().TraverseVecReturnAttr(cast(A)); case attr::VecTypeHint: return getDerived().TraverseVecTypeHintAttr(cast(A)); case attr::VectorCall: return getDerived().TraverseVectorCallAttr(cast(A)); case attr::Visibility: return getDerived().TraverseVisibilityAttr(cast(A)); case attr::WarnUnused: return getDerived().TraverseWarnUnusedAttr(cast(A)); case attr::WarnUnusedResult: return getDerived().TraverseWarnUnusedResultAttr(cast(A)); case attr::Weak: return getDerived().TraverseWeakAttr(cast(A)); case attr::WeakImport: return getDerived().TraverseWeakImportAttr(cast(A)); case attr::WeakRef: return getDerived().TraverseWeakRefAttr(cast(A)); case attr::WebAssemblyExportName: return getDerived().TraverseWebAssemblyExportNameAttr(cast(A)); case attr::WebAssemblyImportModule: return getDerived().TraverseWebAssemblyImportModuleAttr(cast(A)); case attr::WebAssemblyImportName: return getDerived().TraverseWebAssemblyImportNameAttr(cast(A)); case attr::WorkGroupSizeHint: return getDerived().TraverseWorkGroupSizeHintAttr(cast(A)); case attr::X86ForceAlignArgPointer: return getDerived().TraverseX86ForceAlignArgPointerAttr(cast(A)); case attr::XRayInstrument: return getDerived().TraverseXRayInstrumentAttr(cast(A)); case attr::XRayLogArgs: return getDerived().TraverseXRayLogArgsAttr(cast(A)); } llvm_unreachable("bad attribute kind"); } #endif // ATTR_VISITOR_DECLS_ONLY