/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |* *| |* Used by RecursiveASTVisitor to visit attributes. *| |* *| |* Automatically generated file, do not edit! *| |* From: Attr.td *| |* *| \*===----------------------------------------------------------------------===*/ #ifdef ATTR_VISITOR_DECLS_ONLY bool TraverseAArch64SVEPcsAttr(AArch64SVEPcsAttr *A); bool VisitAArch64SVEPcsAttr(AArch64SVEPcsAttr *A) { return true; } bool TraverseAArch64VectorPcsAttr(AArch64VectorPcsAttr *A); bool VisitAArch64VectorPcsAttr(AArch64VectorPcsAttr *A) { return true; } bool TraverseAMDGPUFlatWorkGroupSizeAttr(AMDGPUFlatWorkGroupSizeAttr *A); bool VisitAMDGPUFlatWorkGroupSizeAttr(AMDGPUFlatWorkGroupSizeAttr *A) { return true; } bool TraverseAMDGPUKernelCallAttr(AMDGPUKernelCallAttr *A); bool VisitAMDGPUKernelCallAttr(AMDGPUKernelCallAttr *A) { return true; } bool TraverseAMDGPUMaxNumWorkGroupsAttr(AMDGPUMaxNumWorkGroupsAttr *A); bool VisitAMDGPUMaxNumWorkGroupsAttr(AMDGPUMaxNumWorkGroupsAttr *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 TraverseAlignNaturalAttr(AlignNaturalAttr *A); bool VisitAlignNaturalAttr(AlignNaturalAttr *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 TraverseAllocatingAttr(AllocatingAttr *A); bool VisitAllocatingAttr(AllocatingAttr *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 TraverseAnnotateTypeAttr(AnnotateTypeAttr *A); bool VisitAnnotateTypeAttr(AnnotateTypeAttr *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 TraverseArmBuiltinAliasAttr(ArmBuiltinAliasAttr *A); bool VisitArmBuiltinAliasAttr(ArmBuiltinAliasAttr *A) { return true; } bool TraverseArmInAttr(ArmInAttr *A); bool VisitArmInAttr(ArmInAttr *A) { return true; } bool TraverseArmInOutAttr(ArmInOutAttr *A); bool VisitArmInOutAttr(ArmInOutAttr *A) { return true; } bool TraverseArmLocallyStreamingAttr(ArmLocallyStreamingAttr *A); bool VisitArmLocallyStreamingAttr(ArmLocallyStreamingAttr *A) { return true; } bool TraverseArmMveStrictPolymorphismAttr(ArmMveStrictPolymorphismAttr *A); bool VisitArmMveStrictPolymorphismAttr(ArmMveStrictPolymorphismAttr *A) { return true; } bool TraverseArmNewAttr(ArmNewAttr *A); bool VisitArmNewAttr(ArmNewAttr *A) { return true; } bool TraverseArmOutAttr(ArmOutAttr *A); bool VisitArmOutAttr(ArmOutAttr *A) { return true; } bool TraverseArmPreservesAttr(ArmPreservesAttr *A); bool VisitArmPreservesAttr(ArmPreservesAttr *A) { return true; } bool TraverseArmStreamingAttr(ArmStreamingAttr *A); bool VisitArmStreamingAttr(ArmStreamingAttr *A) { return true; } bool TraverseArmStreamingCompatibleAttr(ArmStreamingCompatibleAttr *A); bool VisitArmStreamingCompatibleAttr(ArmStreamingCompatibleAttr *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 TraverseAvailableOnlyInDefaultEvalMethodAttr(AvailableOnlyInDefaultEvalMethodAttr *A); bool VisitAvailableOnlyInDefaultEvalMethodAttr(AvailableOnlyInDefaultEvalMethodAttr *A) { return true; } bool TraverseBPFFastCallAttr(BPFFastCallAttr *A); bool VisitBPFFastCallAttr(BPFFastCallAttr *A) { return true; } bool TraverseBPFPreserveAccessIndexAttr(BPFPreserveAccessIndexAttr *A); bool VisitBPFPreserveAccessIndexAttr(BPFPreserveAccessIndexAttr *A) { return true; } bool TraverseBPFPreserveStaticOffsetAttr(BPFPreserveStaticOffsetAttr *A); bool VisitBPFPreserveStaticOffsetAttr(BPFPreserveStaticOffsetAttr *A) { return true; } bool TraverseBTFDeclTagAttr(BTFDeclTagAttr *A); bool VisitBTFDeclTagAttr(BTFDeclTagAttr *A) { return true; } bool TraverseBTFTypeTagAttr(BTFTypeTagAttr *A); bool VisitBTFTypeTagAttr(BTFTypeTagAttr *A) { return true; } bool TraverseBlockingAttr(BlockingAttr *A); bool VisitBlockingAttr(BlockingAttr *A) { return true; } bool TraverseBlocksAttr(BlocksAttr *A); bool VisitBlocksAttr(BlocksAttr *A) { return true; } bool TraverseBuiltinAttr(BuiltinAttr *A); bool VisitBuiltinAttr(BuiltinAttr *A) { return true; } bool TraverseBuiltinAliasAttr(BuiltinAliasAttr *A); bool VisitBuiltinAliasAttr(BuiltinAliasAttr *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 TraverseCUDADeviceBuiltinSurfaceTypeAttr(CUDADeviceBuiltinSurfaceTypeAttr *A); bool VisitCUDADeviceBuiltinSurfaceTypeAttr(CUDADeviceBuiltinSurfaceTypeAttr *A) { return true; } bool TraverseCUDADeviceBuiltinTextureTypeAttr(CUDADeviceBuiltinTextureTypeAttr *A); bool VisitCUDADeviceBuiltinTextureTypeAttr(CUDADeviceBuiltinTextureTypeAttr *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 TraverseCXXAssumeAttr(CXXAssumeAttr *A); bool VisitCXXAssumeAttr(CXXAssumeAttr *A) { return true; } bool TraverseCallableWhenAttr(CallableWhenAttr *A); bool VisitCallableWhenAttr(CallableWhenAttr *A) { return true; } bool TraverseCallbackAttr(CallbackAttr *A); bool VisitCallbackAttr(CallbackAttr *A) { return true; } bool TraverseCalledOnceAttr(CalledOnceAttr *A); bool VisitCalledOnceAttr(CalledOnceAttr *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 TraverseClspvLibclcBuiltinAttr(ClspvLibclcBuiltinAttr *A); bool VisitClspvLibclcBuiltinAttr(ClspvLibclcBuiltinAttr *A) { return true; } bool TraverseCmseNSCallAttr(CmseNSCallAttr *A); bool VisitCmseNSCallAttr(CmseNSCallAttr *A) { return true; } bool TraverseCmseNSEntryAttr(CmseNSEntryAttr *A); bool VisitCmseNSEntryAttr(CmseNSEntryAttr *A) { return true; } bool TraverseCodeAlignAttr(CodeAlignAttr *A); bool VisitCodeAlignAttr(CodeAlignAttr *A) { return true; } bool TraverseCodeModelAttr(CodeModelAttr *A); bool VisitCodeModelAttr(CodeModelAttr *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 TraverseCoroDisableLifetimeBoundAttr(CoroDisableLifetimeBoundAttr *A); bool VisitCoroDisableLifetimeBoundAttr(CoroDisableLifetimeBoundAttr *A) { return true; } bool TraverseCoroLifetimeBoundAttr(CoroLifetimeBoundAttr *A); bool VisitCoroLifetimeBoundAttr(CoroLifetimeBoundAttr *A) { return true; } bool TraverseCoroOnlyDestroyWhenCompleteAttr(CoroOnlyDestroyWhenCompleteAttr *A); bool VisitCoroOnlyDestroyWhenCompleteAttr(CoroOnlyDestroyWhenCompleteAttr *A) { return true; } bool TraverseCoroReturnTypeAttr(CoroReturnTypeAttr *A); bool VisitCoroReturnTypeAttr(CoroReturnTypeAttr *A) { return true; } bool TraverseCoroWrapperAttr(CoroWrapperAttr *A); bool VisitCoroWrapperAttr(CoroWrapperAttr *A) { return true; } bool TraverseCountedByAttr(CountedByAttr *A); bool VisitCountedByAttr(CountedByAttr *A) { return true; } bool TraverseCountedByOrNullAttr(CountedByOrNullAttr *A); bool VisitCountedByOrNullAttr(CountedByOrNullAttr *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 TraverseDiagnoseAsBuiltinAttr(DiagnoseAsBuiltinAttr *A); bool VisitDiagnoseAsBuiltinAttr(DiagnoseAsBuiltinAttr *A) { return true; } bool TraverseDiagnoseIfAttr(DiagnoseIfAttr *A); bool VisitDiagnoseIfAttr(DiagnoseIfAttr *A) { return true; } bool TraverseDisableSanitizerInstrumentationAttr(DisableSanitizerInstrumentationAttr *A); bool VisitDisableSanitizerInstrumentationAttr(DisableSanitizerInstrumentationAttr *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 TraverseEnforceTCBAttr(EnforceTCBAttr *A); bool VisitEnforceTCBAttr(EnforceTCBAttr *A) { return true; } bool TraverseEnforceTCBLeafAttr(EnforceTCBLeafAttr *A); bool VisitEnforceTCBLeafAttr(EnforceTCBLeafAttr *A) { return true; } bool TraverseEnumExtensibilityAttr(EnumExtensibilityAttr *A); bool VisitEnumExtensibilityAttr(EnumExtensibilityAttr *A) { return true; } bool TraverseErrorAttr(ErrorAttr *A); bool VisitErrorAttr(ErrorAttr *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 TraverseFunctionReturnThunksAttr(FunctionReturnThunksAttr *A); bool VisitFunctionReturnThunksAttr(FunctionReturnThunksAttr *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 TraverseHIPManagedAttr(HIPManagedAttr *A); bool VisitHIPManagedAttr(HIPManagedAttr *A) { return true; } bool TraverseHLSLGroupSharedAddressSpaceAttr(HLSLGroupSharedAddressSpaceAttr *A); bool VisitHLSLGroupSharedAddressSpaceAttr(HLSLGroupSharedAddressSpaceAttr *A) { return true; } bool TraverseHLSLLoopHintAttr(HLSLLoopHintAttr *A); bool VisitHLSLLoopHintAttr(HLSLLoopHintAttr *A) { return true; } bool TraverseHLSLNumThreadsAttr(HLSLNumThreadsAttr *A); bool VisitHLSLNumThreadsAttr(HLSLNumThreadsAttr *A) { return true; } bool TraverseHLSLPackOffsetAttr(HLSLPackOffsetAttr *A); bool VisitHLSLPackOffsetAttr(HLSLPackOffsetAttr *A) { return true; } bool TraverseHLSLParamModifierAttr(HLSLParamModifierAttr *A); bool VisitHLSLParamModifierAttr(HLSLParamModifierAttr *A) { return true; } bool TraverseHLSLROVAttr(HLSLROVAttr *A); bool VisitHLSLROVAttr(HLSLROVAttr *A) { return true; } bool TraverseHLSLResourceAttr(HLSLResourceAttr *A); bool VisitHLSLResourceAttr(HLSLResourceAttr *A) { return true; } bool TraverseHLSLResourceBindingAttr(HLSLResourceBindingAttr *A); bool VisitHLSLResourceBindingAttr(HLSLResourceBindingAttr *A) { return true; } bool TraverseHLSLResourceClassAttr(HLSLResourceClassAttr *A); bool VisitHLSLResourceClassAttr(HLSLResourceClassAttr *A) { return true; } bool TraverseHLSLSV_DispatchThreadIDAttr(HLSLSV_DispatchThreadIDAttr *A); bool VisitHLSLSV_DispatchThreadIDAttr(HLSLSV_DispatchThreadIDAttr *A) { return true; } bool TraverseHLSLSV_GroupIndexAttr(HLSLSV_GroupIndexAttr *A); bool VisitHLSLSV_GroupIndexAttr(HLSLSV_GroupIndexAttr *A) { return true; } bool TraverseHLSLShaderAttr(HLSLShaderAttr *A); bool VisitHLSLShaderAttr(HLSLShaderAttr *A) { return true; } bool TraverseHotAttr(HotAttr *A); bool VisitHotAttr(HotAttr *A) { return true; } bool TraverseHybridPatchableAttr(HybridPatchableAttr *A); bool VisitHybridPatchableAttr(HybridPatchableAttr *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 TraverseLeafAttr(LeafAttr *A); bool VisitLeafAttr(LeafAttr *A) { return true; } bool TraverseLifetimeBoundAttr(LifetimeBoundAttr *A); bool VisitLifetimeBoundAttr(LifetimeBoundAttr *A) { return true; } bool TraverseLikelyAttr(LikelyAttr *A); bool VisitLikelyAttr(LikelyAttr *A) { return true; } bool TraverseLoaderUninitializedAttr(LoaderUninitializedAttr *A); bool VisitLoaderUninitializedAttr(LoaderUninitializedAttr *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 TraverseM68kInterruptAttr(M68kInterruptAttr *A); bool VisitM68kInterruptAttr(M68kInterruptAttr *A) { return true; } bool TraverseM68kRTDAttr(M68kRTDAttr *A); bool VisitM68kRTDAttr(M68kRTDAttr *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 TraverseMSConstexprAttr(MSConstexprAttr *A); bool VisitMSConstexprAttr(MSConstexprAttr *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 TraverseMaybeUndefAttr(MaybeUndefAttr *A); bool VisitMaybeUndefAttr(MaybeUndefAttr *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 TraverseMustTailAttr(MustTailAttr *A); bool VisitMustTailAttr(MustTailAttr *A) { return true; } bool TraverseNSConsumedAttr(NSConsumedAttr *A); bool VisitNSConsumedAttr(NSConsumedAttr *A) { return true; } bool TraverseNSConsumesSelfAttr(NSConsumesSelfAttr *A); bool VisitNSConsumesSelfAttr(NSConsumesSelfAttr *A) { return true; } bool TraverseNSErrorDomainAttr(NSErrorDomainAttr *A); bool VisitNSErrorDomainAttr(NSErrorDomainAttr *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 TraverseNVPTXKernelAttr(NVPTXKernelAttr *A); bool VisitNVPTXKernelAttr(NVPTXKernelAttr *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 TraverseNoConvergentAttr(NoConvergentAttr *A); bool VisitNoConvergentAttr(NoConvergentAttr *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 TraverseNoMergeAttr(NoMergeAttr *A); bool VisitNoMergeAttr(NoMergeAttr *A) { return true; } bool TraverseNoMicroMipsAttr(NoMicroMipsAttr *A); bool VisitNoMicroMipsAttr(NoMicroMipsAttr *A) { return true; } bool TraverseNoMips16Attr(NoMips16Attr *A); bool VisitNoMips16Attr(NoMips16Attr *A) { return true; } bool TraverseNoProfileFunctionAttr(NoProfileFunctionAttr *A); bool VisitNoProfileFunctionAttr(NoProfileFunctionAttr *A) { return true; } bool TraverseNoRandomizeLayoutAttr(NoRandomizeLayoutAttr *A); bool VisitNoRandomizeLayoutAttr(NoRandomizeLayoutAttr *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 TraverseNoUwtableAttr(NoUwtableAttr *A); bool VisitNoUwtableAttr(NoUwtableAttr *A) { return true; } bool TraverseNonAllocatingAttr(NonAllocatingAttr *A); bool VisitNonAllocatingAttr(NonAllocatingAttr *A) { return true; } bool TraverseNonBlockingAttr(NonBlockingAttr *A); bool VisitNonBlockingAttr(NonBlockingAttr *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 TraverseOMPAssumeAttr(OMPAssumeAttr *A); bool VisitOMPAssumeAttr(OMPAssumeAttr *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 TraverseObjCNonRuntimeProtocolAttr(ObjCNonRuntimeProtocolAttr *A); bool VisitObjCNonRuntimeProtocolAttr(ObjCNonRuntimeProtocolAttr *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 TraverseOpenCLGlobalDeviceAddressSpaceAttr(OpenCLGlobalDeviceAddressSpaceAttr *A); bool VisitOpenCLGlobalDeviceAddressSpaceAttr(OpenCLGlobalDeviceAddressSpaceAttr *A) { return true; } bool TraverseOpenCLGlobalHostAddressSpaceAttr(OpenCLGlobalHostAddressSpaceAttr *A); bool VisitOpenCLGlobalHostAddressSpaceAttr(OpenCLGlobalHostAddressSpaceAttr *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 TraversePreferredNameAttr(PreferredNameAttr *A); bool VisitPreferredNameAttr(PreferredNameAttr *A) { return true; } bool TraversePreferredTypeAttr(PreferredTypeAttr *A); bool VisitPreferredTypeAttr(PreferredTypeAttr *A) { return true; } bool TraversePreserveAllAttr(PreserveAllAttr *A); bool VisitPreserveAllAttr(PreserveAllAttr *A) { return true; } bool TraversePreserveMostAttr(PreserveMostAttr *A); bool VisitPreserveMostAttr(PreserveMostAttr *A) { return true; } bool TraversePreserveNoneAttr(PreserveNoneAttr *A); bool VisitPreserveNoneAttr(PreserveNoneAttr *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 TraverseRISCVVectorCCAttr(RISCVVectorCCAttr *A); bool VisitRISCVVectorCCAttr(RISCVVectorCCAttr *A) { return true; } bool TraverseRandomizeLayoutAttr(RandomizeLayoutAttr *A); bool VisitRandomizeLayoutAttr(RandomizeLayoutAttr *A) { return true; } bool TraverseReadOnlyPlacementAttr(ReadOnlyPlacementAttr *A); bool VisitReadOnlyPlacementAttr(ReadOnlyPlacementAttr *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 TraverseRetainAttr(RetainAttr *A); bool VisitRetainAttr(RetainAttr *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 TraverseSYCLSpecialClassAttr(SYCLSpecialClassAttr *A); bool VisitSYCLSpecialClassAttr(SYCLSpecialClassAttr *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 TraverseSizedByAttr(SizedByAttr *A); bool VisitSizedByAttr(SizedByAttr *A) { return true; } bool TraverseSizedByOrNullAttr(SizedByOrNullAttr *A); bool VisitSizedByOrNullAttr(SizedByOrNullAttr *A) { return true; } bool TraverseSpeculativeLoadHardeningAttr(SpeculativeLoadHardeningAttr *A); bool VisitSpeculativeLoadHardeningAttr(SpeculativeLoadHardeningAttr *A) { return true; } bool TraverseStandaloneDebugAttr(StandaloneDebugAttr *A); bool VisitStandaloneDebugAttr(StandaloneDebugAttr *A) { return true; } bool TraverseStdCallAttr(StdCallAttr *A); bool VisitStdCallAttr(StdCallAttr *A) { return true; } bool TraverseStrictFPAttr(StrictFPAttr *A); bool VisitStrictFPAttr(StrictFPAttr *A) { return true; } bool TraverseStrictGuardStackCheckAttr(StrictGuardStackCheckAttr *A); bool VisitStrictGuardStackCheckAttr(StrictGuardStackCheckAttr *A) { return true; } bool TraverseSuppressAttr(SuppressAttr *A); bool VisitSuppressAttr(SuppressAttr *A) { return true; } bool TraverseSwiftAsyncAttr(SwiftAsyncAttr *A); bool VisitSwiftAsyncAttr(SwiftAsyncAttr *A) { return true; } bool TraverseSwiftAsyncCallAttr(SwiftAsyncCallAttr *A); bool VisitSwiftAsyncCallAttr(SwiftAsyncCallAttr *A) { return true; } bool TraverseSwiftAsyncContextAttr(SwiftAsyncContextAttr *A); bool VisitSwiftAsyncContextAttr(SwiftAsyncContextAttr *A) { return true; } bool TraverseSwiftAsyncErrorAttr(SwiftAsyncErrorAttr *A); bool VisitSwiftAsyncErrorAttr(SwiftAsyncErrorAttr *A) { return true; } bool TraverseSwiftAsyncNameAttr(SwiftAsyncNameAttr *A); bool VisitSwiftAsyncNameAttr(SwiftAsyncNameAttr *A) { return true; } bool TraverseSwiftAttrAttr(SwiftAttrAttr *A); bool VisitSwiftAttrAttr(SwiftAttrAttr *A) { return true; } bool TraverseSwiftBridgeAttr(SwiftBridgeAttr *A); bool VisitSwiftBridgeAttr(SwiftBridgeAttr *A) { return true; } bool TraverseSwiftBridgedTypedefAttr(SwiftBridgedTypedefAttr *A); bool VisitSwiftBridgedTypedefAttr(SwiftBridgedTypedefAttr *A) { return true; } bool TraverseSwiftCallAttr(SwiftCallAttr *A); bool VisitSwiftCallAttr(SwiftCallAttr *A) { return true; } bool TraverseSwiftContextAttr(SwiftContextAttr *A); bool VisitSwiftContextAttr(SwiftContextAttr *A) { return true; } bool TraverseSwiftErrorAttr(SwiftErrorAttr *A); bool VisitSwiftErrorAttr(SwiftErrorAttr *A) { return true; } bool TraverseSwiftErrorResultAttr(SwiftErrorResultAttr *A); bool VisitSwiftErrorResultAttr(SwiftErrorResultAttr *A) { return true; } bool TraverseSwiftImportAsNonGenericAttr(SwiftImportAsNonGenericAttr *A); bool VisitSwiftImportAsNonGenericAttr(SwiftImportAsNonGenericAttr *A) { return true; } bool TraverseSwiftImportPropertyAsAccessorsAttr(SwiftImportPropertyAsAccessorsAttr *A); bool VisitSwiftImportPropertyAsAccessorsAttr(SwiftImportPropertyAsAccessorsAttr *A) { return true; } bool TraverseSwiftIndirectResultAttr(SwiftIndirectResultAttr *A); bool VisitSwiftIndirectResultAttr(SwiftIndirectResultAttr *A) { return true; } bool TraverseSwiftNameAttr(SwiftNameAttr *A); bool VisitSwiftNameAttr(SwiftNameAttr *A) { return true; } bool TraverseSwiftNewTypeAttr(SwiftNewTypeAttr *A); bool VisitSwiftNewTypeAttr(SwiftNewTypeAttr *A) { return true; } bool TraverseSwiftObjCMembersAttr(SwiftObjCMembersAttr *A); bool VisitSwiftObjCMembersAttr(SwiftObjCMembersAttr *A) { return true; } bool TraverseSwiftPrivateAttr(SwiftPrivateAttr *A); bool VisitSwiftPrivateAttr(SwiftPrivateAttr *A) { return true; } bool TraverseSwiftVersionedAdditionAttr(SwiftVersionedAdditionAttr *A); bool VisitSwiftVersionedAdditionAttr(SwiftVersionedAdditionAttr *A) { return true; } bool TraverseSwiftVersionedRemovalAttr(SwiftVersionedRemovalAttr *A); bool VisitSwiftVersionedRemovalAttr(SwiftVersionedRemovalAttr *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 TraverseTargetClonesAttr(TargetClonesAttr *A); bool VisitTargetClonesAttr(TargetClonesAttr *A) { return true; } bool TraverseTargetVersionAttr(TargetVersionAttr *A); bool VisitTargetVersionAttr(TargetVersionAttr *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 TraverseTypeNullableResultAttr(TypeNullableResultAttr *A); bool VisitTypeNullableResultAttr(TypeNullableResultAttr *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 TraverseUnlikelyAttr(UnlikelyAttr *A); bool VisitUnlikelyAttr(UnlikelyAttr *A) { return true; } bool TraverseUnsafeBufferUsageAttr(UnsafeBufferUsageAttr *A); bool VisitUnsafeBufferUsageAttr(UnsafeBufferUsageAttr *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 TraverseUsingIfExistsAttr(UsingIfExistsAttr *A); bool VisitUsingIfExistsAttr(UsingIfExistsAttr *A) { return true; } bool TraverseUuidAttr(UuidAttr *A); bool VisitUuidAttr(UuidAttr *A) { return true; } bool TraverseVTablePointerAuthenticationAttr(VTablePointerAuthenticationAttr *A); bool VisitVTablePointerAuthenticationAttr(VTablePointerAuthenticationAttr *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 TraverseWebAssemblyFuncrefAttr(WebAssemblyFuncrefAttr *A); bool VisitWebAssemblyFuncrefAttr(WebAssemblyFuncrefAttr *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; } bool TraverseZeroCallUsedRegsAttr(ZeroCallUsedRegsAttr *A); bool VisitZeroCallUsedRegsAttr(ZeroCallUsedRegsAttr *A) { return true; } #else // ATTR_VISITOR_DECLS_ONLY template bool VISITORCLASS::TraverseAArch64SVEPcsAttr(AArch64SVEPcsAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAArch64SVEPcsAttr(A)) return false; return true; } 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::TraverseAMDGPUKernelCallAttr(AMDGPUKernelCallAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAMDGPUKernelCallAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseAMDGPUMaxNumWorkGroupsAttr(AMDGPUMaxNumWorkGroupsAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAMDGPUMaxNumWorkGroupsAttr(A)) return false; if (!getDerived().TraverseStmt(A->getMaxNumWorkGroupsX())) return false; if (!getDerived().TraverseStmt(A->getMaxNumWorkGroupsY())) return false; if (!getDerived().TraverseStmt(A->getMaxNumWorkGroupsZ())) 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::TraverseAlignNaturalAttr(AlignNaturalAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAlignNaturalAttr(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::TraverseAllocatingAttr(AllocatingAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAllocatingAttr(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; { Expr * *I = A->args_begin(); Expr * *E = A->args_end(); for (; I != E; ++I) { if (!getDerived().TraverseStmt(*I)) return false; } } { Expr * *I = A->delayedArgs_begin(); Expr * *E = A->delayedArgs_end(); for (; I != E; ++I) { if (!getDerived().TraverseStmt(*I)) return false; } } return true; } template bool VISITORCLASS::TraverseAnnotateTypeAttr(AnnotateTypeAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAnnotateTypeAttr(A)) return false; { Expr * *I = A->args_begin(); Expr * *E = A->args_end(); for (; I != E; ++I) { if (!getDerived().TraverseStmt(*I)) return false; } } { Expr * *I = A->delayedArgs_begin(); Expr * *E = A->delayedArgs_end(); for (; I != E; ++I) { if (!getDerived().TraverseStmt(*I)) 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::TraverseArmBuiltinAliasAttr(ArmBuiltinAliasAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitArmBuiltinAliasAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseArmInAttr(ArmInAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitArmInAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseArmInOutAttr(ArmInOutAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitArmInOutAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseArmLocallyStreamingAttr(ArmLocallyStreamingAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitArmLocallyStreamingAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseArmMveStrictPolymorphismAttr(ArmMveStrictPolymorphismAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitArmMveStrictPolymorphismAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseArmNewAttr(ArmNewAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitArmNewAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseArmOutAttr(ArmOutAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitArmOutAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseArmPreservesAttr(ArmPreservesAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitArmPreservesAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseArmStreamingAttr(ArmStreamingAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitArmStreamingAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseArmStreamingCompatibleAttr(ArmStreamingCompatibleAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitArmStreamingCompatibleAttr(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::TraverseAvailableOnlyInDefaultEvalMethodAttr(AvailableOnlyInDefaultEvalMethodAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitAvailableOnlyInDefaultEvalMethodAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseBPFFastCallAttr(BPFFastCallAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitBPFFastCallAttr(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::TraverseBPFPreserveStaticOffsetAttr(BPFPreserveStaticOffsetAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitBPFPreserveStaticOffsetAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseBTFDeclTagAttr(BTFDeclTagAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitBTFDeclTagAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseBTFTypeTagAttr(BTFTypeTagAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitBTFTypeTagAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseBlockingAttr(BlockingAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitBlockingAttr(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::TraverseBuiltinAttr(BuiltinAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitBuiltinAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseBuiltinAliasAttr(BuiltinAliasAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitBuiltinAliasAttr(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::TraverseCUDADeviceBuiltinSurfaceTypeAttr(CUDADeviceBuiltinSurfaceTypeAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCUDADeviceBuiltinSurfaceTypeAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCUDADeviceBuiltinTextureTypeAttr(CUDADeviceBuiltinTextureTypeAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCUDADeviceBuiltinTextureTypeAttr(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; if (!getDerived().TraverseStmt(A->getMaxBlocks())) 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::TraverseCXXAssumeAttr(CXXAssumeAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCXXAssumeAttr(A)) return false; if (!getDerived().TraverseStmt(A->getAssumption())) 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::TraverseCalledOnceAttr(CalledOnceAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCalledOnceAttr(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::TraverseClspvLibclcBuiltinAttr(ClspvLibclcBuiltinAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitClspvLibclcBuiltinAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCmseNSCallAttr(CmseNSCallAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCmseNSCallAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCmseNSEntryAttr(CmseNSEntryAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCmseNSEntryAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCodeAlignAttr(CodeAlignAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCodeAlignAttr(A)) return false; if (!getDerived().TraverseStmt(A->getAlignment())) return false; return true; } template bool VISITORCLASS::TraverseCodeModelAttr(CodeModelAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCodeModelAttr(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::TraverseCoroDisableLifetimeBoundAttr(CoroDisableLifetimeBoundAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCoroDisableLifetimeBoundAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCoroLifetimeBoundAttr(CoroLifetimeBoundAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCoroLifetimeBoundAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCoroOnlyDestroyWhenCompleteAttr(CoroOnlyDestroyWhenCompleteAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCoroOnlyDestroyWhenCompleteAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCoroReturnTypeAttr(CoroReturnTypeAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCoroReturnTypeAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCoroWrapperAttr(CoroWrapperAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCoroWrapperAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseCountedByAttr(CountedByAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCountedByAttr(A)) return false; if (!getDerived().TraverseStmt(A->getCount())) return false; return true; } template bool VISITORCLASS::TraverseCountedByOrNullAttr(CountedByOrNullAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitCountedByOrNullAttr(A)) return false; if (!getDerived().TraverseStmt(A->getCount())) 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::TraverseDiagnoseAsBuiltinAttr(DiagnoseAsBuiltinAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitDiagnoseAsBuiltinAttr(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::TraverseDisableSanitizerInstrumentationAttr(DisableSanitizerInstrumentationAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitDisableSanitizerInstrumentationAttr(A)) 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::TraverseEnforceTCBAttr(EnforceTCBAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitEnforceTCBAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseEnforceTCBLeafAttr(EnforceTCBLeafAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitEnforceTCBLeafAttr(A)) 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::TraverseErrorAttr(ErrorAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitErrorAttr(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::TraverseFunctionReturnThunksAttr(FunctionReturnThunksAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitFunctionReturnThunksAttr(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::TraverseHIPManagedAttr(HIPManagedAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitHIPManagedAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseHLSLGroupSharedAddressSpaceAttr(HLSLGroupSharedAddressSpaceAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitHLSLGroupSharedAddressSpaceAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseHLSLLoopHintAttr(HLSLLoopHintAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitHLSLLoopHintAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseHLSLNumThreadsAttr(HLSLNumThreadsAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitHLSLNumThreadsAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseHLSLPackOffsetAttr(HLSLPackOffsetAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitHLSLPackOffsetAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseHLSLParamModifierAttr(HLSLParamModifierAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitHLSLParamModifierAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseHLSLROVAttr(HLSLROVAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitHLSLROVAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseHLSLResourceAttr(HLSLResourceAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitHLSLResourceAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseHLSLResourceBindingAttr(HLSLResourceBindingAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitHLSLResourceBindingAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseHLSLResourceClassAttr(HLSLResourceClassAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitHLSLResourceClassAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseHLSLSV_DispatchThreadIDAttr(HLSLSV_DispatchThreadIDAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitHLSLSV_DispatchThreadIDAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseHLSLSV_GroupIndexAttr(HLSLSV_GroupIndexAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitHLSLSV_GroupIndexAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseHLSLShaderAttr(HLSLShaderAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitHLSLShaderAttr(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::TraverseHybridPatchableAttr(HybridPatchableAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitHybridPatchableAttr(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::TraverseLeafAttr(LeafAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitLeafAttr(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::TraverseLikelyAttr(LikelyAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitLikelyAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseLoaderUninitializedAttr(LoaderUninitializedAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitLoaderUninitializedAttr(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::TraverseM68kInterruptAttr(M68kInterruptAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitM68kInterruptAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseM68kRTDAttr(M68kRTDAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitM68kRTDAttr(A)) 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::TraverseMSConstexprAttr(MSConstexprAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitMSConstexprAttr(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::TraverseMaybeUndefAttr(MaybeUndefAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitMaybeUndefAttr(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::TraverseMustTailAttr(MustTailAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitMustTailAttr(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::TraverseNSErrorDomainAttr(NSErrorDomainAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNSErrorDomainAttr(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::TraverseNVPTXKernelAttr(NVPTXKernelAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNVPTXKernelAttr(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::TraverseNoConvergentAttr(NoConvergentAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNoConvergentAttr(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::TraverseNoMergeAttr(NoMergeAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNoMergeAttr(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::TraverseNoProfileFunctionAttr(NoProfileFunctionAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNoProfileFunctionAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseNoRandomizeLayoutAttr(NoRandomizeLayoutAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNoRandomizeLayoutAttr(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::TraverseNoUwtableAttr(NoUwtableAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNoUwtableAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseNonAllocatingAttr(NonAllocatingAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNonAllocatingAttr(A)) return false; if (!getDerived().TraverseStmt(A->getCond())) return false; return true; } template bool VISITORCLASS::TraverseNonBlockingAttr(NonBlockingAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitNonBlockingAttr(A)) return false; if (!getDerived().TraverseStmt(A->getCond())) 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; if (!getDerived().TraverseStmt(A->getAlignment())) return false; return true; } template bool VISITORCLASS::TraverseOMPAssumeAttr(OMPAssumeAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitOMPAssumeAttr(A)) 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; if (!getDerived().TraverseStmt(A->getIndirectExpr())) 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->adjustArgsNothing_begin(); Expr * *E = A->adjustArgsNothing_end(); for (; I != E; ++I) { if (!getDerived().TraverseStmt(*I)) return false; } } { Expr * *I = A->adjustArgsNeedDevicePtr_begin(); Expr * *E = A->adjustArgsNeedDevicePtr_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::TraverseObjCNonRuntimeProtocolAttr(ObjCNonRuntimeProtocolAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitObjCNonRuntimeProtocolAttr(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::TraverseOpenCLGlobalDeviceAddressSpaceAttr(OpenCLGlobalDeviceAddressSpaceAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitOpenCLGlobalDeviceAddressSpaceAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseOpenCLGlobalHostAddressSpaceAttr(OpenCLGlobalHostAddressSpaceAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitOpenCLGlobalHostAddressSpaceAttr(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::TraversePreferredNameAttr(PreferredNameAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitPreferredNameAttr(A)) return false; if (auto *TSI = A->getTypedefTypeLoc()) if (!getDerived().TraverseTypeLoc(TSI->getTypeLoc())) return false; return true; } template bool VISITORCLASS::TraversePreferredTypeAttr(PreferredTypeAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitPreferredTypeAttr(A)) return false; if (auto *TSI = A->getTypeLoc()) if (!getDerived().TraverseTypeLoc(TSI->getTypeLoc())) 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::TraversePreserveNoneAttr(PreserveNoneAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitPreserveNoneAttr(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::TraverseRISCVVectorCCAttr(RISCVVectorCCAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitRISCVVectorCCAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseRandomizeLayoutAttr(RandomizeLayoutAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitRandomizeLayoutAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseReadOnlyPlacementAttr(ReadOnlyPlacementAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitReadOnlyPlacementAttr(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::TraverseRetainAttr(RetainAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitRetainAttr(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::TraverseSYCLSpecialClassAttr(SYCLSpecialClassAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSYCLSpecialClassAttr(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::TraverseSizedByAttr(SizedByAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSizedByAttr(A)) return false; if (!getDerived().TraverseStmt(A->getSize())) return false; return true; } template bool VISITORCLASS::TraverseSizedByOrNullAttr(SizedByOrNullAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSizedByOrNullAttr(A)) return false; if (!getDerived().TraverseStmt(A->getSize())) 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::TraverseStandaloneDebugAttr(StandaloneDebugAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitStandaloneDebugAttr(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::TraverseStrictFPAttr(StrictFPAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitStrictFPAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseStrictGuardStackCheckAttr(StrictGuardStackCheckAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitStrictGuardStackCheckAttr(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::TraverseSwiftAsyncAttr(SwiftAsyncAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSwiftAsyncAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseSwiftAsyncCallAttr(SwiftAsyncCallAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSwiftAsyncCallAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseSwiftAsyncContextAttr(SwiftAsyncContextAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSwiftAsyncContextAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseSwiftAsyncErrorAttr(SwiftAsyncErrorAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSwiftAsyncErrorAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseSwiftAsyncNameAttr(SwiftAsyncNameAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSwiftAsyncNameAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseSwiftAttrAttr(SwiftAttrAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSwiftAttrAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseSwiftBridgeAttr(SwiftBridgeAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSwiftBridgeAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseSwiftBridgedTypedefAttr(SwiftBridgedTypedefAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSwiftBridgedTypedefAttr(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::TraverseSwiftErrorAttr(SwiftErrorAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSwiftErrorAttr(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::TraverseSwiftImportAsNonGenericAttr(SwiftImportAsNonGenericAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSwiftImportAsNonGenericAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseSwiftImportPropertyAsAccessorsAttr(SwiftImportPropertyAsAccessorsAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSwiftImportPropertyAsAccessorsAttr(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::TraverseSwiftNameAttr(SwiftNameAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSwiftNameAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseSwiftNewTypeAttr(SwiftNewTypeAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSwiftNewTypeAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseSwiftObjCMembersAttr(SwiftObjCMembersAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSwiftObjCMembersAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseSwiftPrivateAttr(SwiftPrivateAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSwiftPrivateAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseSwiftVersionedAdditionAttr(SwiftVersionedAdditionAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSwiftVersionedAdditionAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseSwiftVersionedRemovalAttr(SwiftVersionedRemovalAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitSwiftVersionedRemovalAttr(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::TraverseTargetClonesAttr(TargetClonesAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitTargetClonesAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseTargetVersionAttr(TargetVersionAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitTargetVersionAttr(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::TraverseTypeNullableResultAttr(TypeNullableResultAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitTypeNullableResultAttr(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::TraverseUnlikelyAttr(UnlikelyAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitUnlikelyAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseUnsafeBufferUsageAttr(UnsafeBufferUsageAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitUnsafeBufferUsageAttr(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::TraverseUsingIfExistsAttr(UsingIfExistsAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitUsingIfExistsAttr(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::TraverseVTablePointerAuthenticationAttr(VTablePointerAuthenticationAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitVTablePointerAuthenticationAttr(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::TraverseWebAssemblyFuncrefAttr(WebAssemblyFuncrefAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitWebAssemblyFuncrefAttr(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::TraverseZeroCallUsedRegsAttr(ZeroCallUsedRegsAttr *A) { if (!getDerived().VisitAttr(A)) return false; if (!getDerived().VisitZeroCallUsedRegsAttr(A)) return false; return true; } template bool VISITORCLASS::TraverseAttr(Attr *A) { if (!A) return true; switch (A->getKind()) { case attr::AArch64SVEPcs: return getDerived().TraverseAArch64SVEPcsAttr(cast(A)); case attr::AArch64VectorPcs: return getDerived().TraverseAArch64VectorPcsAttr(cast(A)); case attr::AMDGPUFlatWorkGroupSize: return getDerived().TraverseAMDGPUFlatWorkGroupSizeAttr(cast(A)); case attr::AMDGPUKernelCall: return getDerived().TraverseAMDGPUKernelCallAttr(cast(A)); case attr::AMDGPUMaxNumWorkGroups: return getDerived().TraverseAMDGPUMaxNumWorkGroupsAttr(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::AlignNatural: return getDerived().TraverseAlignNaturalAttr(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::Allocating: return getDerived().TraverseAllocatingAttr(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::AnnotateType: return getDerived().TraverseAnnotateTypeAttr(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::ArmBuiltinAlias: return getDerived().TraverseArmBuiltinAliasAttr(cast(A)); case attr::ArmIn: return getDerived().TraverseArmInAttr(cast(A)); case attr::ArmInOut: return getDerived().TraverseArmInOutAttr(cast(A)); case attr::ArmLocallyStreaming: return getDerived().TraverseArmLocallyStreamingAttr(cast(A)); case attr::ArmMveStrictPolymorphism: return getDerived().TraverseArmMveStrictPolymorphismAttr(cast(A)); case attr::ArmNew: return getDerived().TraverseArmNewAttr(cast(A)); case attr::ArmOut: return getDerived().TraverseArmOutAttr(cast(A)); case attr::ArmPreserves: return getDerived().TraverseArmPreservesAttr(cast(A)); case attr::ArmStreaming: return getDerived().TraverseArmStreamingAttr(cast(A)); case attr::ArmStreamingCompatible: return getDerived().TraverseArmStreamingCompatibleAttr(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::AvailableOnlyInDefaultEvalMethod: return getDerived().TraverseAvailableOnlyInDefaultEvalMethodAttr(cast(A)); case attr::BPFFastCall: return getDerived().TraverseBPFFastCallAttr(cast(A)); case attr::BPFPreserveAccessIndex: return getDerived().TraverseBPFPreserveAccessIndexAttr(cast(A)); case attr::BPFPreserveStaticOffset: return getDerived().TraverseBPFPreserveStaticOffsetAttr(cast(A)); case attr::BTFDeclTag: return getDerived().TraverseBTFDeclTagAttr(cast(A)); case attr::BTFTypeTag: return getDerived().TraverseBTFTypeTagAttr(cast(A)); case attr::Blocking: return getDerived().TraverseBlockingAttr(cast(A)); case attr::Blocks: return getDerived().TraverseBlocksAttr(cast(A)); case attr::Builtin: return getDerived().TraverseBuiltinAttr(cast(A)); case attr::BuiltinAlias: return getDerived().TraverseBuiltinAliasAttr(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::CUDADeviceBuiltinSurfaceType: return getDerived().TraverseCUDADeviceBuiltinSurfaceTypeAttr(cast(A)); case attr::CUDADeviceBuiltinTextureType: return getDerived().TraverseCUDADeviceBuiltinTextureTypeAttr(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::CXXAssume: return getDerived().TraverseCXXAssumeAttr(cast(A)); case attr::CallableWhen: return getDerived().TraverseCallableWhenAttr(cast(A)); case attr::Callback: return getDerived().TraverseCallbackAttr(cast(A)); case attr::CalledOnce: return getDerived().TraverseCalledOnceAttr(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::ClspvLibclcBuiltin: return getDerived().TraverseClspvLibclcBuiltinAttr(cast(A)); case attr::CmseNSCall: return getDerived().TraverseCmseNSCallAttr(cast(A)); case attr::CmseNSEntry: return getDerived().TraverseCmseNSEntryAttr(cast(A)); case attr::CodeAlign: return getDerived().TraverseCodeAlignAttr(cast(A)); case attr::CodeModel: return getDerived().TraverseCodeModelAttr(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::CoroDisableLifetimeBound: return getDerived().TraverseCoroDisableLifetimeBoundAttr(cast(A)); case attr::CoroLifetimeBound: return getDerived().TraverseCoroLifetimeBoundAttr(cast(A)); case attr::CoroOnlyDestroyWhenComplete: return getDerived().TraverseCoroOnlyDestroyWhenCompleteAttr(cast(A)); case attr::CoroReturnType: return getDerived().TraverseCoroReturnTypeAttr(cast(A)); case attr::CoroWrapper: return getDerived().TraverseCoroWrapperAttr(cast(A)); case attr::CountedBy: return getDerived().TraverseCountedByAttr(cast(A)); case attr::CountedByOrNull: return getDerived().TraverseCountedByOrNullAttr(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::DiagnoseAsBuiltin: return getDerived().TraverseDiagnoseAsBuiltinAttr(cast(A)); case attr::DiagnoseIf: return getDerived().TraverseDiagnoseIfAttr(cast(A)); case attr::DisableSanitizerInstrumentation: return getDerived().TraverseDisableSanitizerInstrumentationAttr(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::EnforceTCB: return getDerived().TraverseEnforceTCBAttr(cast(A)); case attr::EnforceTCBLeaf: return getDerived().TraverseEnforceTCBLeafAttr(cast(A)); case attr::EnumExtensibility: return getDerived().TraverseEnumExtensibilityAttr(cast(A)); case attr::Error: return getDerived().TraverseErrorAttr(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::FunctionReturnThunks: return getDerived().TraverseFunctionReturnThunksAttr(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::HIPManaged: return getDerived().TraverseHIPManagedAttr(cast(A)); case attr::HLSLGroupSharedAddressSpace: return getDerived().TraverseHLSLGroupSharedAddressSpaceAttr(cast(A)); case attr::HLSLLoopHint: return getDerived().TraverseHLSLLoopHintAttr(cast(A)); case attr::HLSLNumThreads: return getDerived().TraverseHLSLNumThreadsAttr(cast(A)); case attr::HLSLPackOffset: return getDerived().TraverseHLSLPackOffsetAttr(cast(A)); case attr::HLSLParamModifier: return getDerived().TraverseHLSLParamModifierAttr(cast(A)); case attr::HLSLROV: return getDerived().TraverseHLSLROVAttr(cast(A)); case attr::HLSLResource: return getDerived().TraverseHLSLResourceAttr(cast(A)); case attr::HLSLResourceBinding: return getDerived().TraverseHLSLResourceBindingAttr(cast(A)); case attr::HLSLResourceClass: return getDerived().TraverseHLSLResourceClassAttr(cast(A)); case attr::HLSLSV_DispatchThreadID: return getDerived().TraverseHLSLSV_DispatchThreadIDAttr(cast(A)); case attr::HLSLSV_GroupIndex: return getDerived().TraverseHLSLSV_GroupIndexAttr(cast(A)); case attr::HLSLShader: return getDerived().TraverseHLSLShaderAttr(cast(A)); case attr::Hot: return getDerived().TraverseHotAttr(cast(A)); case attr::HybridPatchable: return getDerived().TraverseHybridPatchableAttr(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::Leaf: return getDerived().TraverseLeafAttr(cast(A)); case attr::LifetimeBound: return getDerived().TraverseLifetimeBoundAttr(cast(A)); case attr::Likely: return getDerived().TraverseLikelyAttr(cast(A)); case attr::LoaderUninitialized: return getDerived().TraverseLoaderUninitializedAttr(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::M68kInterrupt: return getDerived().TraverseM68kInterruptAttr(cast(A)); case attr::M68kRTD: return getDerived().TraverseM68kRTDAttr(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::MSConstexpr: return getDerived().TraverseMSConstexprAttr(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::MaybeUndef: return getDerived().TraverseMaybeUndefAttr(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::MustTail: return getDerived().TraverseMustTailAttr(cast(A)); case attr::NSConsumed: return getDerived().TraverseNSConsumedAttr(cast(A)); case attr::NSConsumesSelf: return getDerived().TraverseNSConsumesSelfAttr(cast(A)); case attr::NSErrorDomain: return getDerived().TraverseNSErrorDomainAttr(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::NVPTXKernel: return getDerived().TraverseNVPTXKernelAttr(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::NoConvergent: return getDerived().TraverseNoConvergentAttr(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::NoMerge: return getDerived().TraverseNoMergeAttr(cast(A)); case attr::NoMicroMips: return getDerived().TraverseNoMicroMipsAttr(cast(A)); case attr::NoMips16: return getDerived().TraverseNoMips16Attr(cast(A)); case attr::NoProfileFunction: return getDerived().TraverseNoProfileFunctionAttr(cast(A)); case attr::NoRandomizeLayout: return getDerived().TraverseNoRandomizeLayoutAttr(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::NoUwtable: return getDerived().TraverseNoUwtableAttr(cast(A)); case attr::NonAllocating: return getDerived().TraverseNonAllocatingAttr(cast(A)); case attr::NonBlocking: return getDerived().TraverseNonBlockingAttr(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::OMPAssume: return getDerived().TraverseOMPAssumeAttr(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::ObjCNonRuntimeProtocol: return getDerived().TraverseObjCNonRuntimeProtocolAttr(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::OpenCLGlobalDeviceAddressSpace: return getDerived().TraverseOpenCLGlobalDeviceAddressSpaceAttr(cast(A)); case attr::OpenCLGlobalHostAddressSpace: return getDerived().TraverseOpenCLGlobalHostAddressSpaceAttr(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::PreferredName: return getDerived().TraversePreferredNameAttr(cast(A)); case attr::PreferredType: return getDerived().TraversePreferredTypeAttr(cast(A)); case attr::PreserveAll: return getDerived().TraversePreserveAllAttr(cast(A)); case attr::PreserveMost: return getDerived().TraversePreserveMostAttr(cast(A)); case attr::PreserveNone: return getDerived().TraversePreserveNoneAttr(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::RISCVVectorCC: return getDerived().TraverseRISCVVectorCCAttr(cast(A)); case attr::RandomizeLayout: return getDerived().TraverseRandomizeLayoutAttr(cast(A)); case attr::ReadOnlyPlacement: return getDerived().TraverseReadOnlyPlacementAttr(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::Retain: return getDerived().TraverseRetainAttr(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::SYCLSpecialClass: return getDerived().TraverseSYCLSpecialClassAttr(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::SizedBy: return getDerived().TraverseSizedByAttr(cast(A)); case attr::SizedByOrNull: return getDerived().TraverseSizedByOrNullAttr(cast(A)); case attr::SpeculativeLoadHardening: return getDerived().TraverseSpeculativeLoadHardeningAttr(cast(A)); case attr::StandaloneDebug: return getDerived().TraverseStandaloneDebugAttr(cast(A)); case attr::StdCall: return getDerived().TraverseStdCallAttr(cast(A)); case attr::StrictFP: return getDerived().TraverseStrictFPAttr(cast(A)); case attr::StrictGuardStackCheck: return getDerived().TraverseStrictGuardStackCheckAttr(cast(A)); case attr::Suppress: return getDerived().TraverseSuppressAttr(cast(A)); case attr::SwiftAsync: return getDerived().TraverseSwiftAsyncAttr(cast(A)); case attr::SwiftAsyncCall: return getDerived().TraverseSwiftAsyncCallAttr(cast(A)); case attr::SwiftAsyncContext: return getDerived().TraverseSwiftAsyncContextAttr(cast(A)); case attr::SwiftAsyncError: return getDerived().TraverseSwiftAsyncErrorAttr(cast(A)); case attr::SwiftAsyncName: return getDerived().TraverseSwiftAsyncNameAttr(cast(A)); case attr::SwiftAttr: return getDerived().TraverseSwiftAttrAttr(cast(A)); case attr::SwiftBridge: return getDerived().TraverseSwiftBridgeAttr(cast(A)); case attr::SwiftBridgedTypedef: return getDerived().TraverseSwiftBridgedTypedefAttr(cast(A)); case attr::SwiftCall: return getDerived().TraverseSwiftCallAttr(cast(A)); case attr::SwiftContext: return getDerived().TraverseSwiftContextAttr(cast(A)); case attr::SwiftError: return getDerived().TraverseSwiftErrorAttr(cast(A)); case attr::SwiftErrorResult: return getDerived().TraverseSwiftErrorResultAttr(cast(A)); case attr::SwiftImportAsNonGeneric: return getDerived().TraverseSwiftImportAsNonGenericAttr(cast(A)); case attr::SwiftImportPropertyAsAccessors: return getDerived().TraverseSwiftImportPropertyAsAccessorsAttr(cast(A)); case attr::SwiftIndirectResult: return getDerived().TraverseSwiftIndirectResultAttr(cast(A)); case attr::SwiftName: return getDerived().TraverseSwiftNameAttr(cast(A)); case attr::SwiftNewType: return getDerived().TraverseSwiftNewTypeAttr(cast(A)); case attr::SwiftObjCMembers: return getDerived().TraverseSwiftObjCMembersAttr(cast(A)); case attr::SwiftPrivate: return getDerived().TraverseSwiftPrivateAttr(cast(A)); case attr::SwiftVersionedAddition: return getDerived().TraverseSwiftVersionedAdditionAttr(cast(A)); case attr::SwiftVersionedRemoval: return getDerived().TraverseSwiftVersionedRemovalAttr(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::TargetClones: return getDerived().TraverseTargetClonesAttr(cast(A)); case attr::TargetVersion: return getDerived().TraverseTargetVersionAttr(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::TypeNullableResult: return getDerived().TraverseTypeNullableResultAttr(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::Unlikely: return getDerived().TraverseUnlikelyAttr(cast(A)); case attr::UnsafeBufferUsage: return getDerived().TraverseUnsafeBufferUsageAttr(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::UsingIfExists: return getDerived().TraverseUsingIfExistsAttr(cast(A)); case attr::Uuid: return getDerived().TraverseUuidAttr(cast(A)); case attr::VTablePointerAuthentication: return getDerived().TraverseVTablePointerAuthenticationAttr(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::WebAssemblyFuncref: return getDerived().TraverseWebAssemblyFuncrefAttr(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)); case attr::ZeroCallUsedRegs: return getDerived().TraverseZeroCallUsedRegsAttr(cast(A)); } llvm_unreachable("bad attribute kind"); } #endif // ATTR_VISITOR_DECLS_ONLY