summaryrefslogtreecommitdiff
path: root/clang-r353983/include/clang/AST/AttrTextNodeDump.inc
diff options
context:
space:
mode:
Diffstat (limited to 'clang-r353983/include/clang/AST/AttrTextNodeDump.inc')
-rw-r--r--clang-r353983/include/clang/AST/AttrTextNodeDump.inc751
1 files changed, 751 insertions, 0 deletions
diff --git a/clang-r353983/include/clang/AST/AttrTextNodeDump.inc b/clang-r353983/include/clang/AST/AttrTextNodeDump.inc
new file mode 100644
index 00000000..239b5326
--- /dev/null
+++ b/clang-r353983/include/clang/AST/AttrTextNodeDump.inc
@@ -0,0 +1,751 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|* *|
+|* Attribute text node dumper *|
+|* *|
+|* Automatically generated file, do not edit! *|
+|* *|
+\*===----------------------------------------------------------------------===*/
+
+ void VisitAMDGPUFlatWorkGroupSizeAttr(const AMDGPUFlatWorkGroupSizeAttr *A) {
+ const auto *SA = cast<AMDGPUFlatWorkGroupSizeAttr>(A); (void)SA;
+ OS << " " << SA->getMin();
+ OS << " " << SA->getMax();
+ }
+ void VisitAMDGPUNumSGPRAttr(const AMDGPUNumSGPRAttr *A) {
+ const auto *SA = cast<AMDGPUNumSGPRAttr>(A); (void)SA;
+ OS << " " << SA->getNumSGPR();
+ }
+ void VisitAMDGPUNumVGPRAttr(const AMDGPUNumVGPRAttr *A) {
+ const auto *SA = cast<AMDGPUNumVGPRAttr>(A); (void)SA;
+ OS << " " << SA->getNumVGPR();
+ }
+ void VisitAMDGPUWavesPerEUAttr(const AMDGPUWavesPerEUAttr *A) {
+ const auto *SA = cast<AMDGPUWavesPerEUAttr>(A); (void)SA;
+ OS << " " << SA->getMin();
+ OS << " " << SA->getMax();
+ }
+ void VisitARMInterruptAttr(const ARMInterruptAttr *A) {
+ const auto *SA = cast<ARMInterruptAttr>(A); (void)SA;
+ switch(SA->getInterrupt()) {
+ case ARMInterruptAttr::IRQ:
+ OS << " IRQ";
+ break;
+ case ARMInterruptAttr::FIQ:
+ OS << " FIQ";
+ break;
+ case ARMInterruptAttr::SWI:
+ OS << " SWI";
+ break;
+ case ARMInterruptAttr::ABORT:
+ OS << " ABORT";
+ break;
+ case ARMInterruptAttr::UNDEF:
+ OS << " UNDEF";
+ break;
+ case ARMInterruptAttr::Generic:
+ OS << " Generic";
+ break;
+ }
+ }
+ void VisitAbiTagAttr(const AbiTagAttr *A) {
+ const auto *SA = cast<AbiTagAttr>(A); (void)SA;
+ for (const auto &Val : SA->tags())
+ OS << " " << Val;
+ }
+ void VisitAcquireCapabilityAttr(const AcquireCapabilityAttr *A) {
+ const auto *SA = cast<AcquireCapabilityAttr>(A); (void)SA;
+ OS << " " << A->getSpelling();
+ }
+ void VisitAddressSpaceAttr(const AddressSpaceAttr *A) {
+ const auto *SA = cast<AddressSpaceAttr>(A); (void)SA;
+ OS << " " << SA->getAddressSpace();
+ }
+ void VisitAliasAttr(const AliasAttr *A) {
+ const auto *SA = cast<AliasAttr>(A); (void)SA;
+ OS << " \"" << SA->getAliasee() << "\"";
+ }
+ void VisitAlignedAttr(const AlignedAttr *A) {
+ const auto *SA = cast<AlignedAttr>(A); (void)SA;
+ OS << " " << A->getSpelling();
+ if (!SA->isAlignmentExpr())
+ dumpType(SA->getAlignmentType()->getType());
+ }
+ void VisitAllocAlignAttr(const AllocAlignAttr *A) {
+ const auto *SA = cast<AllocAlignAttr>(A); (void)SA;
+ OS << " " << SA->getParamIndex().getSourceIndex();
+ }
+ void VisitAllocSizeAttr(const AllocSizeAttr *A) {
+ const auto *SA = cast<AllocSizeAttr>(A); (void)SA;
+ OS << " " << SA->getElemSizeParam().getSourceIndex();
+ if (SA->getNumElemsParam().isValid())
+ OS << " " << SA->getNumElemsParam().getSourceIndex();
+ }
+ void VisitAlwaysInlineAttr(const AlwaysInlineAttr *A) {
+ OS << " " << A->getSpelling();
+ }
+ void VisitAnnotateAttr(const AnnotateAttr *A) {
+ const auto *SA = cast<AnnotateAttr>(A); (void)SA;
+ OS << " \"" << SA->getAnnotation() << "\"";
+ }
+ void VisitArgumentWithTypeTagAttr(const ArgumentWithTypeTagAttr *A) {
+ const auto *SA = cast<ArgumentWithTypeTagAttr>(A); (void)SA;
+ OS << " " << A->getSpelling();
+ if (SA->getArgumentKind())
+ OS << " " << SA->getArgumentKind()->getName();
+ OS << " " << SA->getArgumentIdx().getSourceIndex();
+ OS << " " << SA->getTypeTagIdx().getSourceIndex();
+ if (SA->getIsPointer()) OS << " IsPointer";
+ }
+ void VisitAsmLabelAttr(const AsmLabelAttr *A) {
+ const auto *SA = cast<AsmLabelAttr>(A); (void)SA;
+ OS << " \"" << SA->getLabel() << "\"";
+ }
+ void VisitAssertCapabilityAttr(const AssertCapabilityAttr *A) {
+ const auto *SA = cast<AssertCapabilityAttr>(A); (void)SA;
+ OS << " " << A->getSpelling();
+ }
+ void VisitAvailabilityAttr(const AvailabilityAttr *A) {
+ const auto *SA = cast<AvailabilityAttr>(A); (void)SA;
+ if (SA->getPlatform())
+ OS << " " << SA->getPlatform()->getName();
+ OS << " " << SA->getIntroduced();
+ OS << " " << SA->getDeprecated();
+ OS << " " << SA->getObsoleted();
+ if (SA->getUnavailable()) OS << " Unavailable";
+ OS << " \"" << SA->getMessage() << "\"";
+ if (SA->getStrict()) OS << " Strict";
+ OS << " \"" << SA->getReplacement() << "\"";
+ OS << " " << SA->getPriority();
+ }
+ void VisitBlocksAttr(const BlocksAttr *A) {
+ const auto *SA = cast<BlocksAttr>(A); (void)SA;
+ switch(SA->getType()) {
+ case BlocksAttr::ByRef:
+ OS << " ByRef";
+ break;
+ }
+ }
+ void VisitCPUDispatchAttr(const CPUDispatchAttr *A) {
+ const auto *SA = cast<CPUDispatchAttr>(A); (void)SA;
+ for (const auto &Val : SA->cpus())
+ OS << " " << Val;
+ }
+ void VisitCPUSpecificAttr(const CPUSpecificAttr *A) {
+ const auto *SA = cast<CPUSpecificAttr>(A); (void)SA;
+ for (const auto &Val : SA->cpus())
+ OS << " " << Val;
+ }
+ void VisitCallableWhenAttr(const CallableWhenAttr *A) {
+ const auto *SA = cast<CallableWhenAttr>(A); (void)SA;
+ for (CallableWhenAttr::callableStates_iterator I = SA->callableStates_begin(), E = SA->callableStates_end(); I != E; ++I) {
+ switch(*I) {
+ case CallableWhenAttr::Unknown:
+ OS << " Unknown";
+ break;
+ case CallableWhenAttr::Consumed:
+ OS << " Consumed";
+ break;
+ case CallableWhenAttr::Unconsumed:
+ OS << " Unconsumed";
+ break;
+ }
+ }
+ }
+ void VisitCallbackAttr(const CallbackAttr *A) {
+ const auto *SA = cast<CallbackAttr>(A); (void)SA;
+ for (const auto &Val : SA->encoding())
+ OS << " " << Val;
+ }
+ void VisitCapabilityAttr(const CapabilityAttr *A) {
+ const auto *SA = cast<CapabilityAttr>(A); (void)SA;
+ OS << " " << A->getSpelling();
+ OS << " \"" << SA->getName() << "\"";
+ }
+ void VisitCleanupAttr(const CleanupAttr *A) {
+ const auto *SA = cast<CleanupAttr>(A); (void)SA;
+ OS << " ";
+ dumpBareDeclRef(SA->getFunctionDecl());
+ }
+ void VisitCodeSegAttr(const CodeSegAttr *A) {
+ const auto *SA = cast<CodeSegAttr>(A); (void)SA;
+ OS << " \"" << SA->getName() << "\"";
+ }
+ void VisitConstructorAttr(const ConstructorAttr *A) {
+ const auto *SA = cast<ConstructorAttr>(A); (void)SA;
+ OS << " " << SA->getPriority();
+ }
+ void VisitConsumableAttr(const ConsumableAttr *A) {
+ const auto *SA = cast<ConsumableAttr>(A); (void)SA;
+ switch(SA->getDefaultState()) {
+ case ConsumableAttr::Unknown:
+ OS << " Unknown";
+ break;
+ case ConsumableAttr::Consumed:
+ OS << " Consumed";
+ break;
+ case ConsumableAttr::Unconsumed:
+ OS << " Unconsumed";
+ break;
+ }
+ }
+ void VisitDeprecatedAttr(const DeprecatedAttr *A) {
+ const auto *SA = cast<DeprecatedAttr>(A); (void)SA;
+ OS << " \"" << SA->getMessage() << "\"";
+ OS << " \"" << SA->getReplacement() << "\"";
+ }
+ void VisitDestructorAttr(const DestructorAttr *A) {
+ const auto *SA = cast<DestructorAttr>(A); (void)SA;
+ OS << " " << SA->getPriority();
+ }
+ void VisitDiagnoseIfAttr(const DiagnoseIfAttr *A) {
+ const auto *SA = cast<DiagnoseIfAttr>(A); (void)SA;
+ OS << " \"" << SA->getMessage() << "\"";
+ switch(SA->getDiagnosticType()) {
+ case DiagnoseIfAttr::DT_Error:
+ OS << " DT_Error";
+ break;
+ case DiagnoseIfAttr::DT_Warning:
+ OS << " DT_Warning";
+ break;
+ }
+ if (SA->getArgDependent()) OS << " ArgDependent";
+ OS << " ";
+ dumpBareDeclRef(SA->getParent());
+ }
+ void VisitEnableIfAttr(const EnableIfAttr *A) {
+ const auto *SA = cast<EnableIfAttr>(A); (void)SA;
+ OS << " \"" << SA->getMessage() << "\"";
+ }
+ void VisitEnumExtensibilityAttr(const EnumExtensibilityAttr *A) {
+ const auto *SA = cast<EnumExtensibilityAttr>(A); (void)SA;
+ switch(SA->getExtensibility()) {
+ case EnumExtensibilityAttr::Closed:
+ OS << " Closed";
+ break;
+ case EnumExtensibilityAttr::Open:
+ OS << " Open";
+ break;
+ }
+ }
+ void VisitExternalSourceSymbolAttr(const ExternalSourceSymbolAttr *A) {
+ const auto *SA = cast<ExternalSourceSymbolAttr>(A); (void)SA;
+ OS << " \"" << SA->getLanguage() << "\"";
+ OS << " \"" << SA->getDefinedIn() << "\"";
+ if (SA->getGeneratedDeclaration()) OS << " GeneratedDeclaration";
+ }
+ void VisitFinalAttr(const FinalAttr *A) {
+ OS << " " << A->getSpelling();
+ }
+ void VisitFormatAttr(const FormatAttr *A) {
+ const auto *SA = cast<FormatAttr>(A); (void)SA;
+ if (SA->getType())
+ OS << " " << SA->getType()->getName();
+ OS << " " << SA->getFormatIdx();
+ OS << " " << SA->getFirstArg();
+ }
+ void VisitFormatArgAttr(const FormatArgAttr *A) {
+ const auto *SA = cast<FormatArgAttr>(A); (void)SA;
+ OS << " " << SA->getFormatIdx().getSourceIndex();
+ }
+ void VisitFortifyStdLibAttr(const FortifyStdLibAttr *A) {
+ const auto *SA = cast<FortifyStdLibAttr>(A); (void)SA;
+ OS << " " << SA->getType();
+ OS << " " << SA->getFlag();
+ }
+ void VisitIBOutletCollectionAttr(const IBOutletCollectionAttr *A) {
+ const auto *SA = cast<IBOutletCollectionAttr>(A); (void)SA;
+ OS << " " << SA->getInterface().getAsString();
+ }
+ void VisitIFuncAttr(const IFuncAttr *A) {
+ const auto *SA = cast<IFuncAttr>(A); (void)SA;
+ OS << " \"" << SA->getResolver() << "\"";
+ }
+ void VisitInitPriorityAttr(const InitPriorityAttr *A) {
+ const auto *SA = cast<InitPriorityAttr>(A); (void)SA;
+ OS << " " << SA->getPriority();
+ }
+ void VisitInitSegAttr(const InitSegAttr *A) {
+ const auto *SA = cast<InitSegAttr>(A); (void)SA;
+ OS << " \"" << SA->getSection() << "\"";
+ }
+ void VisitLayoutVersionAttr(const LayoutVersionAttr *A) {
+ const auto *SA = cast<LayoutVersionAttr>(A); (void)SA;
+ OS << " " << SA->getVersion();
+ }
+ void VisitLoopHintAttr(const LoopHintAttr *A) {
+ const auto *SA = cast<LoopHintAttr>(A); (void)SA;
+ OS << " " << A->getSpelling();
+ switch(SA->getOption()) {
+ case LoopHintAttr::Vectorize:
+ OS << " Vectorize";
+ break;
+ case LoopHintAttr::VectorizeWidth:
+ OS << " VectorizeWidth";
+ break;
+ case LoopHintAttr::Interleave:
+ OS << " Interleave";
+ break;
+ case LoopHintAttr::InterleaveCount:
+ OS << " InterleaveCount";
+ break;
+ case LoopHintAttr::Unroll:
+ OS << " Unroll";
+ break;
+ case LoopHintAttr::UnrollCount:
+ OS << " UnrollCount";
+ break;
+ case LoopHintAttr::UnrollAndJam:
+ OS << " UnrollAndJam";
+ break;
+ case LoopHintAttr::UnrollAndJamCount:
+ OS << " UnrollAndJamCount";
+ break;
+ case LoopHintAttr::PipelineDisabled:
+ OS << " PipelineDisabled";
+ break;
+ case LoopHintAttr::PipelineInitiationInterval:
+ OS << " PipelineInitiationInterval";
+ break;
+ case LoopHintAttr::Distribute:
+ OS << " Distribute";
+ break;
+ }
+ switch(SA->getState()) {
+ case LoopHintAttr::Enable:
+ OS << " Enable";
+ break;
+ case LoopHintAttr::Disable:
+ OS << " Disable";
+ break;
+ case LoopHintAttr::Numeric:
+ OS << " Numeric";
+ break;
+ case LoopHintAttr::AssumeSafety:
+ OS << " AssumeSafety";
+ break;
+ case LoopHintAttr::Full:
+ OS << " Full";
+ break;
+ }
+ }
+ void VisitMSInheritanceAttr(const MSInheritanceAttr *A) {
+ const auto *SA = cast<MSInheritanceAttr>(A); (void)SA;
+ OS << " " << A->getSpelling();
+ if (SA->getBestCase()) OS << " BestCase";
+ }
+ void VisitMSP430InterruptAttr(const MSP430InterruptAttr *A) {
+ const auto *SA = cast<MSP430InterruptAttr>(A); (void)SA;
+ OS << " " << SA->getNumber();
+ }
+ void VisitMSVtorDispAttr(const MSVtorDispAttr *A) {
+ const auto *SA = cast<MSVtorDispAttr>(A); (void)SA;
+ OS << " " << SA->getVdm();
+ }
+ void VisitMaxFieldAlignmentAttr(const MaxFieldAlignmentAttr *A) {
+ const auto *SA = cast<MaxFieldAlignmentAttr>(A); (void)SA;
+ OS << " " << SA->getAlignment();
+ }
+ void VisitMinVectorWidthAttr(const MinVectorWidthAttr *A) {
+ const auto *SA = cast<MinVectorWidthAttr>(A); (void)SA;
+ OS << " " << SA->getVectorWidth();
+ }
+ void VisitMipsInterruptAttr(const MipsInterruptAttr *A) {
+ const auto *SA = cast<MipsInterruptAttr>(A); (void)SA;
+ switch(SA->getInterrupt()) {
+ case MipsInterruptAttr::sw0:
+ OS << " sw0";
+ break;
+ case MipsInterruptAttr::sw1:
+ OS << " sw1";
+ break;
+ case MipsInterruptAttr::hw0:
+ OS << " hw0";
+ break;
+ case MipsInterruptAttr::hw1:
+ OS << " hw1";
+ break;
+ case MipsInterruptAttr::hw2:
+ OS << " hw2";
+ break;
+ case MipsInterruptAttr::hw3:
+ OS << " hw3";
+ break;
+ case MipsInterruptAttr::hw4:
+ OS << " hw4";
+ break;
+ case MipsInterruptAttr::hw5:
+ OS << " hw5";
+ break;
+ case MipsInterruptAttr::eic:
+ OS << " eic";
+ break;
+ }
+ }
+ void VisitMipsLongCallAttr(const MipsLongCallAttr *A) {
+ OS << " " << A->getSpelling();
+ }
+ void VisitMipsShortCallAttr(const MipsShortCallAttr *A) {
+ OS << " " << A->getSpelling();
+ }
+ void VisitModeAttr(const ModeAttr *A) {
+ const auto *SA = cast<ModeAttr>(A); (void)SA;
+ if (SA->getMode())
+ OS << " " << SA->getMode()->getName();
+ }
+ void VisitNoSanitizeAttr(const NoSanitizeAttr *A) {
+ const auto *SA = cast<NoSanitizeAttr>(A); (void)SA;
+ for (const auto &Val : SA->sanitizers())
+ OS << " " << Val;
+ }
+ void VisitNonNullAttr(const NonNullAttr *A) {
+ const auto *SA = cast<NonNullAttr>(A); (void)SA;
+ for (const auto &Val : SA->args())
+ OS << " " << Val.getSourceIndex();
+ }
+ void VisitOMPCaptureKindAttr(const OMPCaptureKindAttr *A) {
+ const auto *SA = cast<OMPCaptureKindAttr>(A); (void)SA;
+ OS << " " << SA->getCaptureKind();
+ }
+ void VisitOMPDeclareSimdDeclAttr(const OMPDeclareSimdDeclAttr *A) {
+ const auto *SA = cast<OMPDeclareSimdDeclAttr>(A); (void)SA;
+ switch(SA->getBranchState()) {
+ case OMPDeclareSimdDeclAttr::BS_Undefined:
+ OS << " BS_Undefined";
+ break;
+ case OMPDeclareSimdDeclAttr::BS_Inbranch:
+ OS << " BS_Inbranch";
+ break;
+ case OMPDeclareSimdDeclAttr::BS_Notinbranch:
+ OS << " BS_Notinbranch";
+ break;
+ }
+ for (const auto &Val : SA->modifiers())
+ OS << " " << Val;
+ }
+ void VisitOMPDeclareTargetDeclAttr(const OMPDeclareTargetDeclAttr *A) {
+ const auto *SA = cast<OMPDeclareTargetDeclAttr>(A); (void)SA;
+ switch(SA->getMapType()) {
+ case OMPDeclareTargetDeclAttr::MT_To:
+ OS << " MT_To";
+ break;
+ case OMPDeclareTargetDeclAttr::MT_Link:
+ OS << " MT_Link";
+ break;
+ }
+ }
+ void VisitObjCBridgeAttr(const ObjCBridgeAttr *A) {
+ const auto *SA = cast<ObjCBridgeAttr>(A); (void)SA;
+ if (SA->getBridgedType())
+ OS << " " << SA->getBridgedType()->getName();
+ }
+ void VisitObjCBridgeMutableAttr(const ObjCBridgeMutableAttr *A) {
+ const auto *SA = cast<ObjCBridgeMutableAttr>(A); (void)SA;
+ if (SA->getBridgedType())
+ OS << " " << SA->getBridgedType()->getName();
+ }
+ void VisitObjCBridgeRelatedAttr(const ObjCBridgeRelatedAttr *A) {
+ const auto *SA = cast<ObjCBridgeRelatedAttr>(A); (void)SA;
+ if (SA->getRelatedClass())
+ OS << " " << SA->getRelatedClass()->getName();
+ if (SA->getClassMethod())
+ OS << " " << SA->getClassMethod()->getName();
+ if (SA->getInstanceMethod())
+ OS << " " << SA->getInstanceMethod()->getName();
+ }
+ void VisitObjCGCAttr(const ObjCGCAttr *A) {
+ const auto *SA = cast<ObjCGCAttr>(A); (void)SA;
+ if (SA->getKind())
+ OS << " " << SA->getKind()->getName();
+ }
+ void VisitObjCMethodFamilyAttr(const ObjCMethodFamilyAttr *A) {
+ const auto *SA = cast<ObjCMethodFamilyAttr>(A); (void)SA;
+ switch(SA->getFamily()) {
+ case ObjCMethodFamilyAttr::OMF_None:
+ OS << " OMF_None";
+ break;
+ case ObjCMethodFamilyAttr::OMF_alloc:
+ OS << " OMF_alloc";
+ break;
+ case ObjCMethodFamilyAttr::OMF_copy:
+ OS << " OMF_copy";
+ break;
+ case ObjCMethodFamilyAttr::OMF_init:
+ OS << " OMF_init";
+ break;
+ case ObjCMethodFamilyAttr::OMF_mutableCopy:
+ OS << " OMF_mutableCopy";
+ break;
+ case ObjCMethodFamilyAttr::OMF_new:
+ OS << " OMF_new";
+ break;
+ }
+ }
+ void VisitObjCOwnershipAttr(const ObjCOwnershipAttr *A) {
+ const auto *SA = cast<ObjCOwnershipAttr>(A); (void)SA;
+ if (SA->getKind())
+ OS << " " << SA->getKind()->getName();
+ }
+ void VisitObjCRuntimeNameAttr(const ObjCRuntimeNameAttr *A) {
+ const auto *SA = cast<ObjCRuntimeNameAttr>(A); (void)SA;
+ OS << " \"" << SA->getMetadataName() << "\"";
+ }
+ void VisitOpenCLAccessAttr(const OpenCLAccessAttr *A) {
+ OS << " " << A->getSpelling();
+ }
+ void VisitOpenCLIntelReqdSubGroupSizeAttr(const OpenCLIntelReqdSubGroupSizeAttr *A) {
+ const auto *SA = cast<OpenCLIntelReqdSubGroupSizeAttr>(A); (void)SA;
+ OS << " " << SA->getSubGroupSize();
+ }
+ void VisitOpenCLUnrollHintAttr(const OpenCLUnrollHintAttr *A) {
+ const auto *SA = cast<OpenCLUnrollHintAttr>(A); (void)SA;
+ OS << " " << SA->getUnrollHint();
+ }
+ void VisitOwnershipAttr(const OwnershipAttr *A) {
+ const auto *SA = cast<OwnershipAttr>(A); (void)SA;
+ OS << " " << A->getSpelling();
+ if (SA->getModule())
+ OS << " " << SA->getModule()->getName();
+ for (const auto &Val : SA->args())
+ OS << " " << Val.getSourceIndex();
+ }
+ void VisitParamTypestateAttr(const ParamTypestateAttr *A) {
+ const auto *SA = cast<ParamTypestateAttr>(A); (void)SA;
+ switch(SA->getParamState()) {
+ case ParamTypestateAttr::Unknown:
+ OS << " Unknown";
+ break;
+ case ParamTypestateAttr::Consumed:
+ OS << " Consumed";
+ break;
+ case ParamTypestateAttr::Unconsumed:
+ OS << " Unconsumed";
+ break;
+ }
+ }
+ void VisitPassObjectSizeAttr(const PassObjectSizeAttr *A) {
+ const auto *SA = cast<PassObjectSizeAttr>(A); (void)SA;
+ OS << " " << SA->getType();
+ }
+ void VisitPcsAttr(const PcsAttr *A) {
+ const auto *SA = cast<PcsAttr>(A); (void)SA;
+ switch(SA->getPCS()) {
+ case PcsAttr::AAPCS:
+ OS << " AAPCS";
+ break;
+ case PcsAttr::AAPCS_VFP:
+ OS << " AAPCS_VFP";
+ break;
+ }
+ }
+ void VisitPragmaClangBSSSectionAttr(const PragmaClangBSSSectionAttr *A) {
+ const auto *SA = cast<PragmaClangBSSSectionAttr>(A); (void)SA;
+ OS << " \"" << SA->getName() << "\"";
+ }
+ void VisitPragmaClangDataSectionAttr(const PragmaClangDataSectionAttr *A) {
+ const auto *SA = cast<PragmaClangDataSectionAttr>(A); (void)SA;
+ OS << " \"" << SA->getName() << "\"";
+ }
+ void VisitPragmaClangRodataSectionAttr(const PragmaClangRodataSectionAttr *A) {
+ const auto *SA = cast<PragmaClangRodataSectionAttr>(A); (void)SA;
+ OS << " \"" << SA->getName() << "\"";
+ }
+ void VisitPragmaClangTextSectionAttr(const PragmaClangTextSectionAttr *A) {
+ const auto *SA = cast<PragmaClangTextSectionAttr>(A); (void)SA;
+ OS << " \"" << SA->getName() << "\"";
+ }
+ void VisitRISCVInterruptAttr(const RISCVInterruptAttr *A) {
+ const auto *SA = cast<RISCVInterruptAttr>(A); (void)SA;
+ switch(SA->getInterrupt()) {
+ case RISCVInterruptAttr::user:
+ OS << " user";
+ break;
+ case RISCVInterruptAttr::supervisor:
+ OS << " supervisor";
+ break;
+ case RISCVInterruptAttr::machine:
+ OS << " machine";
+ break;
+ }
+ }
+ void VisitReleaseCapabilityAttr(const ReleaseCapabilityAttr *A) {
+ const auto *SA = cast<ReleaseCapabilityAttr>(A); (void)SA;
+ OS << " " << A->getSpelling();
+ }
+ void VisitReqdWorkGroupSizeAttr(const ReqdWorkGroupSizeAttr *A) {
+ const auto *SA = cast<ReqdWorkGroupSizeAttr>(A); (void)SA;
+ OS << " " << SA->getXDim();
+ OS << " " << SA->getYDim();
+ OS << " " << SA->getZDim();
+ }
+ void VisitRequiresCapabilityAttr(const RequiresCapabilityAttr *A) {
+ const auto *SA = cast<RequiresCapabilityAttr>(A); (void)SA;
+ OS << " " << A->getSpelling();
+ }
+ void VisitRestrictAttr(const RestrictAttr *A) {
+ OS << " " << A->getSpelling();
+ }
+ void VisitReturnTypestateAttr(const ReturnTypestateAttr *A) {
+ const auto *SA = cast<ReturnTypestateAttr>(A); (void)SA;
+ switch(SA->getState()) {
+ case ReturnTypestateAttr::Unknown:
+ OS << " Unknown";
+ break;
+ case ReturnTypestateAttr::Consumed:
+ OS << " Consumed";
+ break;
+ case ReturnTypestateAttr::Unconsumed:
+ OS << " Unconsumed";
+ break;
+ }
+ }
+ void VisitSectionAttr(const SectionAttr *A) {
+ const auto *SA = cast<SectionAttr>(A); (void)SA;
+ OS << " " << A->getSpelling();
+ OS << " \"" << SA->getName() << "\"";
+ }
+ void VisitSentinelAttr(const SentinelAttr *A) {
+ const auto *SA = cast<SentinelAttr>(A); (void)SA;
+ OS << " " << SA->getSentinel();
+ OS << " " << SA->getNullPos();
+ }
+ void VisitSetTypestateAttr(const SetTypestateAttr *A) {
+ const auto *SA = cast<SetTypestateAttr>(A); (void)SA;
+ switch(SA->getNewState()) {
+ case SetTypestateAttr::Unknown:
+ OS << " Unknown";
+ break;
+ case SetTypestateAttr::Consumed:
+ OS << " Consumed";
+ break;
+ case SetTypestateAttr::Unconsumed:
+ OS << " Unconsumed";
+ break;
+ }
+ }
+ void VisitSuppressAttr(const SuppressAttr *A) {
+ const auto *SA = cast<SuppressAttr>(A); (void)SA;
+ for (const auto &Val : SA->diagnosticIdentifiers())
+ OS << " " << Val;
+ }
+ void VisitTLSModelAttr(const TLSModelAttr *A) {
+ const auto *SA = cast<TLSModelAttr>(A); (void)SA;
+ OS << " \"" << SA->getModel() << "\"";
+ }
+ void VisitTargetAttr(const TargetAttr *A) {
+ const auto *SA = cast<TargetAttr>(A); (void)SA;
+ OS << " \"" << SA->getFeaturesStr() << "\"";
+ }
+ void VisitTestTypestateAttr(const TestTypestateAttr *A) {
+ const auto *SA = cast<TestTypestateAttr>(A); (void)SA;
+ switch(SA->getTestState()) {
+ case TestTypestateAttr::Consumed:
+ OS << " Consumed";
+ break;
+ case TestTypestateAttr::Unconsumed:
+ OS << " Unconsumed";
+ break;
+ }
+ }
+ void VisitTryAcquireCapabilityAttr(const TryAcquireCapabilityAttr *A) {
+ const auto *SA = cast<TryAcquireCapabilityAttr>(A); (void)SA;
+ OS << " " << A->getSpelling();
+ }
+ void VisitTypeTagForDatatypeAttr(const TypeTagForDatatypeAttr *A) {
+ const auto *SA = cast<TypeTagForDatatypeAttr>(A); (void)SA;
+ if (SA->getArgumentKind())
+ OS << " " << SA->getArgumentKind()->getName();
+ OS << " " << SA->getMatchingCType().getAsString();
+ if (SA->getLayoutCompatible()) OS << " LayoutCompatible";
+ if (SA->getMustBeNull()) OS << " MustBeNull";
+ }
+ void VisitTypeVisibilityAttr(const TypeVisibilityAttr *A) {
+ const auto *SA = cast<TypeVisibilityAttr>(A); (void)SA;
+ switch(SA->getVisibility()) {
+ case TypeVisibilityAttr::Default:
+ OS << " Default";
+ break;
+ case TypeVisibilityAttr::Hidden:
+ OS << " Hidden";
+ break;
+ case TypeVisibilityAttr::Protected:
+ OS << " Protected";
+ break;
+ }
+ }
+ void VisitUnavailableAttr(const UnavailableAttr *A) {
+ const auto *SA = cast<UnavailableAttr>(A); (void)SA;
+ OS << " \"" << SA->getMessage() << "\"";
+ switch(SA->getImplicitReason()) {
+ case UnavailableAttr::IR_None:
+ OS << " IR_None";
+ break;
+ case UnavailableAttr::IR_ARCForbiddenType:
+ OS << " IR_ARCForbiddenType";
+ break;
+ case UnavailableAttr::IR_ForbiddenWeak:
+ OS << " IR_ForbiddenWeak";
+ break;
+ case UnavailableAttr::IR_ARCForbiddenConversion:
+ OS << " IR_ARCForbiddenConversion";
+ break;
+ case UnavailableAttr::IR_ARCInitReturnsUnrelated:
+ OS << " IR_ARCInitReturnsUnrelated";
+ break;
+ case UnavailableAttr::IR_ARCFieldWithOwnership:
+ OS << " IR_ARCFieldWithOwnership";
+ break;
+ }
+ }
+ void VisitUnusedAttr(const UnusedAttr *A) {
+ OS << " " << A->getSpelling();
+ }
+ void VisitUuidAttr(const UuidAttr *A) {
+ const auto *SA = cast<UuidAttr>(A); (void)SA;
+ OS << " \"" << SA->getGuid() << "\"";
+ }
+ void VisitVecTypeHintAttr(const VecTypeHintAttr *A) {
+ const auto *SA = cast<VecTypeHintAttr>(A); (void)SA;
+ OS << " " << SA->getTypeHint().getAsString();
+ }
+ void VisitVisibilityAttr(const VisibilityAttr *A) {
+ const auto *SA = cast<VisibilityAttr>(A); (void)SA;
+ switch(SA->getVisibility()) {
+ case VisibilityAttr::Default:
+ OS << " Default";
+ break;
+ case VisibilityAttr::Hidden:
+ OS << " Hidden";
+ break;
+ case VisibilityAttr::Protected:
+ OS << " Protected";
+ break;
+ }
+ }
+ void VisitWarnUnusedResultAttr(const WarnUnusedResultAttr *A) {
+ OS << " " << A->getSpelling();
+ }
+ void VisitWeakRefAttr(const WeakRefAttr *A) {
+ const auto *SA = cast<WeakRefAttr>(A); (void)SA;
+ OS << " \"" << SA->getAliasee() << "\"";
+ }
+ void VisitWebAssemblyImportModuleAttr(const WebAssemblyImportModuleAttr *A) {
+ const auto *SA = cast<WebAssemblyImportModuleAttr>(A); (void)SA;
+ OS << " \"" << SA->getImportModule() << "\"";
+ }
+ void VisitWebAssemblyImportNameAttr(const WebAssemblyImportNameAttr *A) {
+ const auto *SA = cast<WebAssemblyImportNameAttr>(A); (void)SA;
+ OS << " \"" << SA->getImportName() << "\"";
+ }
+ void VisitWorkGroupSizeHintAttr(const WorkGroupSizeHintAttr *A) {
+ const auto *SA = cast<WorkGroupSizeHintAttr>(A); (void)SA;
+ OS << " " << SA->getXDim();
+ OS << " " << SA->getYDim();
+ OS << " " << SA->getZDim();
+ }
+ void VisitXRayInstrumentAttr(const XRayInstrumentAttr *A) {
+ OS << " " << A->getSpelling();
+ }
+ void VisitXRayLogArgsAttr(const XRayLogArgsAttr *A) {
+ const auto *SA = cast<XRayLogArgsAttr>(A); (void)SA;
+ OS << " " << SA->getArgumentCount();
+ }