Lines Matching refs:Node
154 void VisitStmt(Stmt *Node) LLVM_ATTRIBUTE_UNUSED { in VisitStmt() argument
158 void VisitExpr(Expr *Node) LLVM_ATTRIBUTE_UNUSED { in VisitExpr() argument
162 void VisitCXXNamedCastExpr(CXXNamedCastExpr *Node);
166 void Visit##CLASS(CLASS *Node);
178 void StmtPrinter::PrintRawCompoundStmt(CompoundStmt *Node) { in PrintRawCompoundStmt() argument
180 for (auto *I : Node->body()) in PrintRawCompoundStmt()
195 void StmtPrinter::VisitNullStmt(NullStmt *Node) { in VisitNullStmt() argument
199 void StmtPrinter::VisitDeclStmt(DeclStmt *Node) { in VisitDeclStmt() argument
201 PrintRawDeclStmt(Node); in VisitDeclStmt()
205 void StmtPrinter::VisitCompoundStmt(CompoundStmt *Node) { in VisitCompoundStmt() argument
207 PrintRawCompoundStmt(Node); in VisitCompoundStmt()
211 void StmtPrinter::VisitCaseStmt(CaseStmt *Node) { in VisitCaseStmt() argument
213 PrintExpr(Node->getLHS()); in VisitCaseStmt()
214 if (Node->getRHS()) { in VisitCaseStmt()
216 PrintExpr(Node->getRHS()); in VisitCaseStmt()
220 PrintStmt(Node->getSubStmt(), 0); in VisitCaseStmt()
223 void StmtPrinter::VisitDefaultStmt(DefaultStmt *Node) { in VisitDefaultStmt() argument
225 PrintStmt(Node->getSubStmt(), 0); in VisitDefaultStmt()
228 void StmtPrinter::VisitLabelStmt(LabelStmt *Node) { in VisitLabelStmt() argument
229 Indent(-1) << Node->getName() << ":" << NL; in VisitLabelStmt()
230 PrintStmt(Node->getSubStmt(), 0); in VisitLabelStmt()
233 void StmtPrinter::VisitAttributedStmt(AttributedStmt *Node) { in VisitAttributedStmt() argument
234 for (const auto *Attr : Node->getAttrs()) { in VisitAttributedStmt()
238 PrintStmt(Node->getSubStmt(), 0); in VisitAttributedStmt()
283 void StmtPrinter::VisitSwitchStmt(SwitchStmt *Node) { in VisitSwitchStmt() argument
285 if (Node->getInit()) in VisitSwitchStmt()
286 PrintInitStmt(Node->getInit(), 8); in VisitSwitchStmt()
287 if (const DeclStmt *DS = Node->getConditionVariableDeclStmt()) in VisitSwitchStmt()
290 PrintExpr(Node->getCond()); in VisitSwitchStmt()
292 PrintControlledStmt(Node->getBody()); in VisitSwitchStmt()
295 void StmtPrinter::VisitWhileStmt(WhileStmt *Node) { in VisitWhileStmt() argument
297 if (const DeclStmt *DS = Node->getConditionVariableDeclStmt()) in VisitWhileStmt()
300 PrintExpr(Node->getCond()); in VisitWhileStmt()
302 PrintStmt(Node->getBody()); in VisitWhileStmt()
305 void StmtPrinter::VisitDoStmt(DoStmt *Node) { in VisitDoStmt() argument
307 if (auto *CS = dyn_cast<CompoundStmt>(Node->getBody())) { in VisitDoStmt()
312 PrintStmt(Node->getBody()); in VisitDoStmt()
317 PrintExpr(Node->getCond()); in VisitDoStmt()
321 void StmtPrinter::VisitForStmt(ForStmt *Node) { in VisitForStmt() argument
323 if (Node->getInit()) in VisitForStmt()
324 PrintInitStmt(Node->getInit(), 5); in VisitForStmt()
326 OS << (Node->getCond() ? "; " : ";"); in VisitForStmt()
327 if (Node->getCond()) in VisitForStmt()
328 PrintExpr(Node->getCond()); in VisitForStmt()
330 if (Node->getInc()) { in VisitForStmt()
332 PrintExpr(Node->getInc()); in VisitForStmt()
335 PrintControlledStmt(Node->getBody()); in VisitForStmt()
338 void StmtPrinter::VisitObjCForCollectionStmt(ObjCForCollectionStmt *Node) { in VisitObjCForCollectionStmt() argument
340 if (auto *DS = dyn_cast<DeclStmt>(Node->getElement())) in VisitObjCForCollectionStmt()
343 PrintExpr(cast<Expr>(Node->getElement())); in VisitObjCForCollectionStmt()
345 PrintExpr(Node->getCollection()); in VisitObjCForCollectionStmt()
347 PrintControlledStmt(Node->getBody()); in VisitObjCForCollectionStmt()
350 void StmtPrinter::VisitCXXForRangeStmt(CXXForRangeStmt *Node) { in VisitCXXForRangeStmt() argument
352 if (Node->getInit()) in VisitCXXForRangeStmt()
353 PrintInitStmt(Node->getInit(), 5); in VisitCXXForRangeStmt()
356 Node->getLoopVariable()->print(OS, SubPolicy, IndentLevel); in VisitCXXForRangeStmt()
358 PrintExpr(Node->getRangeInit()); in VisitCXXForRangeStmt()
360 PrintControlledStmt(Node->getBody()); in VisitCXXForRangeStmt()
363 void StmtPrinter::VisitMSDependentExistsStmt(MSDependentExistsStmt *Node) { in VisitMSDependentExistsStmt() argument
365 if (Node->isIfExists()) in VisitMSDependentExistsStmt()
371 = Node->getQualifierLoc().getNestedNameSpecifier()) in VisitMSDependentExistsStmt()
374 OS << Node->getNameInfo() << ") "; in VisitMSDependentExistsStmt()
376 PrintRawCompoundStmt(Node->getSubStmt()); in VisitMSDependentExistsStmt()
379 void StmtPrinter::VisitGotoStmt(GotoStmt *Node) { in VisitGotoStmt() argument
380 Indent() << "goto " << Node->getLabel()->getName() << ";"; in VisitGotoStmt()
384 void StmtPrinter::VisitIndirectGotoStmt(IndirectGotoStmt *Node) { in VisitIndirectGotoStmt() argument
386 PrintExpr(Node->getTarget()); in VisitIndirectGotoStmt()
391 void StmtPrinter::VisitContinueStmt(ContinueStmt *Node) { in VisitContinueStmt() argument
396 void StmtPrinter::VisitBreakStmt(BreakStmt *Node) { in VisitBreakStmt() argument
401 void StmtPrinter::VisitReturnStmt(ReturnStmt *Node) { in VisitReturnStmt() argument
403 if (Node->getRetValue()) { in VisitReturnStmt()
405 PrintExpr(Node->getRetValue()); in VisitReturnStmt()
411 void StmtPrinter::VisitGCCAsmStmt(GCCAsmStmt *Node) { in VisitGCCAsmStmt() argument
414 if (Node->isVolatile()) in VisitGCCAsmStmt()
418 VisitStringLiteral(Node->getAsmString()); in VisitGCCAsmStmt()
421 if (Node->getNumOutputs() != 0 || Node->getNumInputs() != 0 || in VisitGCCAsmStmt()
422 Node->getNumClobbers() != 0) in VisitGCCAsmStmt()
425 for (unsigned i = 0, e = Node->getNumOutputs(); i != e; ++i) { in VisitGCCAsmStmt()
429 if (!Node->getOutputName(i).empty()) { in VisitGCCAsmStmt()
431 OS << Node->getOutputName(i); in VisitGCCAsmStmt()
435 VisitStringLiteral(Node->getOutputConstraintLiteral(i)); in VisitGCCAsmStmt()
437 Visit(Node->getOutputExpr(i)); in VisitGCCAsmStmt()
442 if (Node->getNumInputs() != 0 || Node->getNumClobbers() != 0) in VisitGCCAsmStmt()
445 for (unsigned i = 0, e = Node->getNumInputs(); i != e; ++i) { in VisitGCCAsmStmt()
449 if (!Node->getInputName(i).empty()) { in VisitGCCAsmStmt()
451 OS << Node->getInputName(i); in VisitGCCAsmStmt()
455 VisitStringLiteral(Node->getInputConstraintLiteral(i)); in VisitGCCAsmStmt()
457 Visit(Node->getInputExpr(i)); in VisitGCCAsmStmt()
462 if (Node->getNumClobbers() != 0) in VisitGCCAsmStmt()
465 for (unsigned i = 0, e = Node->getNumClobbers(); i != e; ++i) { in VisitGCCAsmStmt()
469 VisitStringLiteral(Node->getClobberStringLiteral(i)); in VisitGCCAsmStmt()
476 void StmtPrinter::VisitMSAsmStmt(MSAsmStmt *Node) { in VisitMSAsmStmt() argument
479 if (Node->hasBraces()) in VisitMSAsmStmt()
481 OS << Node->getAsmString() << NL; in VisitMSAsmStmt()
482 if (Node->hasBraces()) in VisitMSAsmStmt()
486 void StmtPrinter::VisitCapturedStmt(CapturedStmt *Node) { in VisitCapturedStmt() argument
487 PrintStmt(Node->getCapturedDecl()->getBody()); in VisitCapturedStmt()
490 void StmtPrinter::VisitObjCAtTryStmt(ObjCAtTryStmt *Node) { in VisitObjCAtTryStmt() argument
492 if (auto *TS = dyn_cast<CompoundStmt>(Node->getTryBody())) { in VisitObjCAtTryStmt()
497 for (unsigned I = 0, N = Node->getNumCatchStmts(); I != N; ++I) { in VisitObjCAtTryStmt()
498 ObjCAtCatchStmt *catchStmt = Node->getCatchStmt(I); in VisitObjCAtTryStmt()
511 if (auto *FS = static_cast<ObjCAtFinallyStmt *>(Node->getFinallyStmt())) { in VisitObjCAtTryStmt()
518 void StmtPrinter::VisitObjCAtFinallyStmt(ObjCAtFinallyStmt *Node) { in VisitObjCAtFinallyStmt() argument
521 void StmtPrinter::VisitObjCAtCatchStmt (ObjCAtCatchStmt *Node) { in VisitObjCAtCatchStmt() argument
525 void StmtPrinter::VisitObjCAtThrowStmt(ObjCAtThrowStmt *Node) { in VisitObjCAtThrowStmt() argument
527 if (Node->getThrowExpr()) { in VisitObjCAtThrowStmt()
529 PrintExpr(Node->getThrowExpr()); in VisitObjCAtThrowStmt()
535 ObjCAvailabilityCheckExpr *Node) { in VisitObjCAvailabilityCheckExpr() argument
539 void StmtPrinter::VisitObjCAtSynchronizedStmt(ObjCAtSynchronizedStmt *Node) { in VisitObjCAtSynchronizedStmt() argument
541 PrintExpr(Node->getSynchExpr()); in VisitObjCAtSynchronizedStmt()
543 PrintRawCompoundStmt(Node->getSynchBody()); in VisitObjCAtSynchronizedStmt()
547 void StmtPrinter::VisitObjCAutoreleasePoolStmt(ObjCAutoreleasePoolStmt *Node) { in VisitObjCAutoreleasePoolStmt() argument
549 PrintRawCompoundStmt(dyn_cast<CompoundStmt>(Node->getSubStmt())); in VisitObjCAutoreleasePoolStmt()
553 void StmtPrinter::PrintRawCXXCatchStmt(CXXCatchStmt *Node) { in PrintRawCXXCatchStmt() argument
555 if (Decl *ExDecl = Node->getExceptionDecl()) in PrintRawCXXCatchStmt()
560 PrintRawCompoundStmt(cast<CompoundStmt>(Node->getHandlerBlock())); in PrintRawCXXCatchStmt()
563 void StmtPrinter::VisitCXXCatchStmt(CXXCatchStmt *Node) { in VisitCXXCatchStmt() argument
565 PrintRawCXXCatchStmt(Node); in VisitCXXCatchStmt()
569 void StmtPrinter::VisitCXXTryStmt(CXXTryStmt *Node) { in VisitCXXTryStmt() argument
571 PrintRawCompoundStmt(Node->getTryBlock()); in VisitCXXTryStmt()
572 for (unsigned i = 0, e = Node->getNumHandlers(); i < e; ++i) { in VisitCXXTryStmt()
574 PrintRawCXXCatchStmt(Node->getHandler(i)); in VisitCXXTryStmt()
579 void StmtPrinter::VisitSEHTryStmt(SEHTryStmt *Node) { in VisitSEHTryStmt() argument
580 Indent() << (Node->getIsCXXTry() ? "try " : "__try "); in VisitSEHTryStmt()
581 PrintRawCompoundStmt(Node->getTryBlock()); in VisitSEHTryStmt()
582 SEHExceptStmt *E = Node->getExceptHandler(); in VisitSEHTryStmt()
583 SEHFinallyStmt *F = Node->getFinallyHandler(); in VisitSEHTryStmt()
593 void StmtPrinter::PrintRawSEHFinallyStmt(SEHFinallyStmt *Node) { in PrintRawSEHFinallyStmt() argument
595 PrintRawCompoundStmt(Node->getBlock()); in PrintRawSEHFinallyStmt()
599 void StmtPrinter::PrintRawSEHExceptHandler(SEHExceptStmt *Node) { in PrintRawSEHExceptHandler() argument
601 VisitExpr(Node->getFilterExpr()); in PrintRawSEHExceptHandler()
603 PrintRawCompoundStmt(Node->getBlock()); in PrintRawSEHExceptHandler()
607 void StmtPrinter::VisitSEHExceptStmt(SEHExceptStmt *Node) { in VisitSEHExceptStmt() argument
609 PrintRawSEHExceptHandler(Node); in VisitSEHExceptStmt()
613 void StmtPrinter::VisitSEHFinallyStmt(SEHFinallyStmt *Node) { in VisitSEHFinallyStmt() argument
615 PrintRawSEHFinallyStmt(Node); in VisitSEHFinallyStmt()
619 void StmtPrinter::VisitSEHLeaveStmt(SEHLeaveStmt *Node) { in VisitSEHLeaveStmt() argument
642 void StmtPrinter::VisitOMPParallelDirective(OMPParallelDirective *Node) { in VisitOMPParallelDirective() argument
644 PrintOMPExecutableDirective(Node); in VisitOMPParallelDirective()
647 void StmtPrinter::VisitOMPSimdDirective(OMPSimdDirective *Node) { in VisitOMPSimdDirective() argument
649 PrintOMPExecutableDirective(Node); in VisitOMPSimdDirective()
652 void StmtPrinter::VisitOMPForDirective(OMPForDirective *Node) { in VisitOMPForDirective() argument
654 PrintOMPExecutableDirective(Node); in VisitOMPForDirective()
657 void StmtPrinter::VisitOMPForSimdDirective(OMPForSimdDirective *Node) { in VisitOMPForSimdDirective() argument
659 PrintOMPExecutableDirective(Node); in VisitOMPForSimdDirective()
662 void StmtPrinter::VisitOMPSectionsDirective(OMPSectionsDirective *Node) { in VisitOMPSectionsDirective() argument
664 PrintOMPExecutableDirective(Node); in VisitOMPSectionsDirective()
667 void StmtPrinter::VisitOMPSectionDirective(OMPSectionDirective *Node) { in VisitOMPSectionDirective() argument
669 PrintOMPExecutableDirective(Node); in VisitOMPSectionDirective()
672 void StmtPrinter::VisitOMPSingleDirective(OMPSingleDirective *Node) { in VisitOMPSingleDirective() argument
674 PrintOMPExecutableDirective(Node); in VisitOMPSingleDirective()
677 void StmtPrinter::VisitOMPMasterDirective(OMPMasterDirective *Node) { in VisitOMPMasterDirective() argument
679 PrintOMPExecutableDirective(Node); in VisitOMPMasterDirective()
682 void StmtPrinter::VisitOMPCriticalDirective(OMPCriticalDirective *Node) { in VisitOMPCriticalDirective() argument
684 if (Node->getDirectiveName().getName()) { in VisitOMPCriticalDirective()
686 Node->getDirectiveName().printName(OS); in VisitOMPCriticalDirective()
689 PrintOMPExecutableDirective(Node); in VisitOMPCriticalDirective()
692 void StmtPrinter::VisitOMPParallelForDirective(OMPParallelForDirective *Node) { in VisitOMPParallelForDirective() argument
694 PrintOMPExecutableDirective(Node); in VisitOMPParallelForDirective()
698 OMPParallelForSimdDirective *Node) { in VisitOMPParallelForSimdDirective() argument
700 PrintOMPExecutableDirective(Node); in VisitOMPParallelForSimdDirective()
704 OMPParallelSectionsDirective *Node) { in VisitOMPParallelSectionsDirective() argument
706 PrintOMPExecutableDirective(Node); in VisitOMPParallelSectionsDirective()
709 void StmtPrinter::VisitOMPTaskDirective(OMPTaskDirective *Node) { in VisitOMPTaskDirective() argument
711 PrintOMPExecutableDirective(Node); in VisitOMPTaskDirective()
714 void StmtPrinter::VisitOMPTaskyieldDirective(OMPTaskyieldDirective *Node) { in VisitOMPTaskyieldDirective() argument
716 PrintOMPExecutableDirective(Node); in VisitOMPTaskyieldDirective()
719 void StmtPrinter::VisitOMPBarrierDirective(OMPBarrierDirective *Node) { in VisitOMPBarrierDirective() argument
721 PrintOMPExecutableDirective(Node); in VisitOMPBarrierDirective()
724 void StmtPrinter::VisitOMPTaskwaitDirective(OMPTaskwaitDirective *Node) { in VisitOMPTaskwaitDirective() argument
726 PrintOMPExecutableDirective(Node); in VisitOMPTaskwaitDirective()
729 void StmtPrinter::VisitOMPTaskgroupDirective(OMPTaskgroupDirective *Node) { in VisitOMPTaskgroupDirective() argument
731 PrintOMPExecutableDirective(Node); in VisitOMPTaskgroupDirective()
734 void StmtPrinter::VisitOMPFlushDirective(OMPFlushDirective *Node) { in VisitOMPFlushDirective() argument
736 PrintOMPExecutableDirective(Node); in VisitOMPFlushDirective()
739 void StmtPrinter::VisitOMPOrderedDirective(OMPOrderedDirective *Node) { in VisitOMPOrderedDirective() argument
741 PrintOMPExecutableDirective(Node, Node->hasClausesOfKind<OMPDependClause>()); in VisitOMPOrderedDirective()
744 void StmtPrinter::VisitOMPAtomicDirective(OMPAtomicDirective *Node) { in VisitOMPAtomicDirective() argument
746 PrintOMPExecutableDirective(Node); in VisitOMPAtomicDirective()
749 void StmtPrinter::VisitOMPTargetDirective(OMPTargetDirective *Node) { in VisitOMPTargetDirective() argument
751 PrintOMPExecutableDirective(Node); in VisitOMPTargetDirective()
754 void StmtPrinter::VisitOMPTargetDataDirective(OMPTargetDataDirective *Node) { in VisitOMPTargetDataDirective() argument
756 PrintOMPExecutableDirective(Node); in VisitOMPTargetDataDirective()
760 OMPTargetEnterDataDirective *Node) { in VisitOMPTargetEnterDataDirective() argument
762 PrintOMPExecutableDirective(Node, /*ForceNoStmt=*/true); in VisitOMPTargetEnterDataDirective()
766 OMPTargetExitDataDirective *Node) { in VisitOMPTargetExitDataDirective() argument
768 PrintOMPExecutableDirective(Node, /*ForceNoStmt=*/true); in VisitOMPTargetExitDataDirective()
772 OMPTargetParallelDirective *Node) { in VisitOMPTargetParallelDirective() argument
774 PrintOMPExecutableDirective(Node); in VisitOMPTargetParallelDirective()
778 OMPTargetParallelForDirective *Node) { in VisitOMPTargetParallelForDirective() argument
780 PrintOMPExecutableDirective(Node); in VisitOMPTargetParallelForDirective()
783 void StmtPrinter::VisitOMPTeamsDirective(OMPTeamsDirective *Node) { in VisitOMPTeamsDirective() argument
785 PrintOMPExecutableDirective(Node); in VisitOMPTeamsDirective()
789 OMPCancellationPointDirective *Node) { in VisitOMPCancellationPointDirective() argument
791 << getOpenMPDirectiveName(Node->getCancelRegion()); in VisitOMPCancellationPointDirective()
792 PrintOMPExecutableDirective(Node); in VisitOMPCancellationPointDirective()
795 void StmtPrinter::VisitOMPCancelDirective(OMPCancelDirective *Node) { in VisitOMPCancelDirective() argument
797 << getOpenMPDirectiveName(Node->getCancelRegion()); in VisitOMPCancelDirective()
798 PrintOMPExecutableDirective(Node); in VisitOMPCancelDirective()
801 void StmtPrinter::VisitOMPTaskLoopDirective(OMPTaskLoopDirective *Node) { in VisitOMPTaskLoopDirective() argument
803 PrintOMPExecutableDirective(Node); in VisitOMPTaskLoopDirective()
807 OMPTaskLoopSimdDirective *Node) { in VisitOMPTaskLoopSimdDirective() argument
809 PrintOMPExecutableDirective(Node); in VisitOMPTaskLoopSimdDirective()
812 void StmtPrinter::VisitOMPDistributeDirective(OMPDistributeDirective *Node) { in VisitOMPDistributeDirective() argument
814 PrintOMPExecutableDirective(Node); in VisitOMPDistributeDirective()
818 OMPTargetUpdateDirective *Node) { in VisitOMPTargetUpdateDirective() argument
820 PrintOMPExecutableDirective(Node, /*ForceNoStmt=*/true); in VisitOMPTargetUpdateDirective()
824 OMPDistributeParallelForDirective *Node) { in VisitOMPDistributeParallelForDirective() argument
826 PrintOMPExecutableDirective(Node); in VisitOMPDistributeParallelForDirective()
830 OMPDistributeParallelForSimdDirective *Node) { in VisitOMPDistributeParallelForSimdDirective() argument
832 PrintOMPExecutableDirective(Node); in VisitOMPDistributeParallelForSimdDirective()
836 OMPDistributeSimdDirective *Node) { in VisitOMPDistributeSimdDirective() argument
838 PrintOMPExecutableDirective(Node); in VisitOMPDistributeSimdDirective()
842 OMPTargetParallelForSimdDirective *Node) { in VisitOMPTargetParallelForSimdDirective() argument
844 PrintOMPExecutableDirective(Node); in VisitOMPTargetParallelForSimdDirective()
847 void StmtPrinter::VisitOMPTargetSimdDirective(OMPTargetSimdDirective *Node) { in VisitOMPTargetSimdDirective() argument
849 PrintOMPExecutableDirective(Node); in VisitOMPTargetSimdDirective()
853 OMPTeamsDistributeDirective *Node) { in VisitOMPTeamsDistributeDirective() argument
855 PrintOMPExecutableDirective(Node); in VisitOMPTeamsDistributeDirective()
859 OMPTeamsDistributeSimdDirective *Node) { in VisitOMPTeamsDistributeSimdDirective() argument
861 PrintOMPExecutableDirective(Node); in VisitOMPTeamsDistributeSimdDirective()
865 OMPTeamsDistributeParallelForSimdDirective *Node) { in VisitOMPTeamsDistributeParallelForSimdDirective() argument
867 PrintOMPExecutableDirective(Node); in VisitOMPTeamsDistributeParallelForSimdDirective()
871 OMPTeamsDistributeParallelForDirective *Node) { in VisitOMPTeamsDistributeParallelForDirective() argument
873 PrintOMPExecutableDirective(Node); in VisitOMPTeamsDistributeParallelForDirective()
876 void StmtPrinter::VisitOMPTargetTeamsDirective(OMPTargetTeamsDirective *Node) { in VisitOMPTargetTeamsDirective() argument
878 PrintOMPExecutableDirective(Node); in VisitOMPTargetTeamsDirective()
882 OMPTargetTeamsDistributeDirective *Node) { in VisitOMPTargetTeamsDistributeDirective() argument
884 PrintOMPExecutableDirective(Node); in VisitOMPTargetTeamsDistributeDirective()
888 OMPTargetTeamsDistributeParallelForDirective *Node) { in VisitOMPTargetTeamsDistributeParallelForDirective() argument
890 PrintOMPExecutableDirective(Node); in VisitOMPTargetTeamsDistributeParallelForDirective()
894 OMPTargetTeamsDistributeParallelForSimdDirective *Node) { in VisitOMPTargetTeamsDistributeParallelForSimdDirective() argument
896 PrintOMPExecutableDirective(Node); in VisitOMPTargetTeamsDistributeParallelForSimdDirective()
900 OMPTargetTeamsDistributeSimdDirective *Node) { in VisitOMPTargetTeamsDistributeSimdDirective() argument
902 PrintOMPExecutableDirective(Node); in VisitOMPTargetTeamsDistributeSimdDirective()
909 void StmtPrinter::VisitConstantExpr(ConstantExpr *Node) { in VisitConstantExpr() argument
910 PrintExpr(Node->getSubExpr()); in VisitConstantExpr()
913 void StmtPrinter::VisitDeclRefExpr(DeclRefExpr *Node) { in VisitDeclRefExpr() argument
914 if (const auto *OCED = dyn_cast<OMPCapturedExprDecl>(Node->getDecl())) { in VisitDeclRefExpr()
918 if (NestedNameSpecifier *Qualifier = Node->getQualifier()) in VisitDeclRefExpr()
920 if (Node->hasTemplateKeyword()) in VisitDeclRefExpr()
922 OS << Node->getNameInfo(); in VisitDeclRefExpr()
923 if (Node->hasExplicitTemplateArgs()) in VisitDeclRefExpr()
924 printTemplateArgumentList(OS, Node->template_arguments(), Policy); in VisitDeclRefExpr()
928 DependentScopeDeclRefExpr *Node) { in VisitDependentScopeDeclRefExpr() argument
929 if (NestedNameSpecifier *Qualifier = Node->getQualifier()) in VisitDependentScopeDeclRefExpr()
931 if (Node->hasTemplateKeyword()) in VisitDependentScopeDeclRefExpr()
933 OS << Node->getNameInfo(); in VisitDependentScopeDeclRefExpr()
934 if (Node->hasExplicitTemplateArgs()) in VisitDependentScopeDeclRefExpr()
935 printTemplateArgumentList(OS, Node->template_arguments(), Policy); in VisitDependentScopeDeclRefExpr()
938 void StmtPrinter::VisitUnresolvedLookupExpr(UnresolvedLookupExpr *Node) { in VisitUnresolvedLookupExpr() argument
939 if (Node->getQualifier()) in VisitUnresolvedLookupExpr()
940 Node->getQualifier()->print(OS, Policy); in VisitUnresolvedLookupExpr()
941 if (Node->hasTemplateKeyword()) in VisitUnresolvedLookupExpr()
943 OS << Node->getNameInfo(); in VisitUnresolvedLookupExpr()
944 if (Node->hasExplicitTemplateArgs()) in VisitUnresolvedLookupExpr()
945 printTemplateArgumentList(OS, Node->template_arguments(), Policy); in VisitUnresolvedLookupExpr()
959 void StmtPrinter::VisitObjCIvarRefExpr(ObjCIvarRefExpr *Node) { in VisitObjCIvarRefExpr() argument
960 if (Node->getBase()) { in VisitObjCIvarRefExpr()
962 !isImplicitSelf(Node->getBase()->IgnoreImpCasts())) { in VisitObjCIvarRefExpr()
963 PrintExpr(Node->getBase()); in VisitObjCIvarRefExpr()
964 OS << (Node->isArrow() ? "->" : "."); in VisitObjCIvarRefExpr()
967 OS << *Node->getDecl(); in VisitObjCIvarRefExpr()
970 void StmtPrinter::VisitObjCPropertyRefExpr(ObjCPropertyRefExpr *Node) { in VisitObjCPropertyRefExpr() argument
971 if (Node->isSuperReceiver()) in VisitObjCPropertyRefExpr()
973 else if (Node->isObjectReceiver() && Node->getBase()) { in VisitObjCPropertyRefExpr()
974 PrintExpr(Node->getBase()); in VisitObjCPropertyRefExpr()
976 } else if (Node->isClassReceiver() && Node->getClassReceiver()) { in VisitObjCPropertyRefExpr()
977 OS << Node->getClassReceiver()->getName() << "."; in VisitObjCPropertyRefExpr()
980 if (Node->isImplicitProperty()) { in VisitObjCPropertyRefExpr()
981 if (const auto *Getter = Node->getImplicitPropertyGetter()) in VisitObjCPropertyRefExpr()
985 Node->getImplicitPropertySetter()->getSelector()); in VisitObjCPropertyRefExpr()
987 OS << Node->getExplicitProperty()->getName(); in VisitObjCPropertyRefExpr()
990 void StmtPrinter::VisitObjCSubscriptRefExpr(ObjCSubscriptRefExpr *Node) { in VisitObjCSubscriptRefExpr() argument
991 PrintExpr(Node->getBaseExpr()); in VisitObjCSubscriptRefExpr()
993 PrintExpr(Node->getKeyExpr()); in VisitObjCSubscriptRefExpr()
997 void StmtPrinter::VisitPredefinedExpr(PredefinedExpr *Node) { in VisitPredefinedExpr() argument
998 OS << PredefinedExpr::getIdentKindName(Node->getIdentKind()); in VisitPredefinedExpr()
1001 void StmtPrinter::VisitCharacterLiteral(CharacterLiteral *Node) { in VisitCharacterLiteral() argument
1002 unsigned value = Node->getValue(); in VisitCharacterLiteral()
1004 switch (Node->getKind()) { in VisitCharacterLiteral()
1050 if ((value & ~0xFFu) == ~0xFFu && Node->getKind() == CharacterLiteral::Ascii) in VisitCharacterLiteral()
1080 void StmtPrinter::VisitIntegerLiteral(IntegerLiteral *Node) { in VisitIntegerLiteral() argument
1081 if (Policy.ConstantsAsWritten && printExprAsWritten(OS, Node, Context)) in VisitIntegerLiteral()
1083 bool isSigned = Node->getType()->isSignedIntegerType(); in VisitIntegerLiteral()
1084 OS << Node->getValue().toString(10, isSigned); in VisitIntegerLiteral()
1087 switch (Node->getType()->getAs<BuiltinType>()->getKind()) { in VisitIntegerLiteral()
1103 void StmtPrinter::VisitFixedPointLiteral(FixedPointLiteral *Node) { in VisitFixedPointLiteral() argument
1104 if (Policy.ConstantsAsWritten && printExprAsWritten(OS, Node, Context)) in VisitFixedPointLiteral()
1106 OS << Node->getValueAsString(/*Radix=*/10); in VisitFixedPointLiteral()
1108 switch (Node->getType()->getAs<BuiltinType>()->getKind()) { in VisitFixedPointLiteral()
1125 static void PrintFloatingLiteral(raw_ostream &OS, FloatingLiteral *Node, in PrintFloatingLiteral() argument
1128 Node->getValue().toString(Str); in PrintFloatingLiteral()
1137 switch (Node->getType()->getAs<BuiltinType>()->getKind()) { in PrintFloatingLiteral()
1148 void StmtPrinter::VisitFloatingLiteral(FloatingLiteral *Node) { in VisitFloatingLiteral() argument
1149 if (Policy.ConstantsAsWritten && printExprAsWritten(OS, Node, Context)) in VisitFloatingLiteral()
1151 PrintFloatingLiteral(OS, Node, /*PrintSuffix=*/true); in VisitFloatingLiteral()
1154 void StmtPrinter::VisitImaginaryLiteral(ImaginaryLiteral *Node) { in VisitImaginaryLiteral() argument
1155 PrintExpr(Node->getSubExpr()); in VisitImaginaryLiteral()
1163 void StmtPrinter::VisitParenExpr(ParenExpr *Node) { in VisitParenExpr() argument
1165 PrintExpr(Node->getSubExpr()); in VisitParenExpr()
1169 void StmtPrinter::VisitUnaryOperator(UnaryOperator *Node) { in VisitUnaryOperator() argument
1170 if (!Node->isPostfix()) { in VisitUnaryOperator()
1171 OS << UnaryOperator::getOpcodeStr(Node->getOpcode()); in VisitUnaryOperator()
1175 switch (Node->getOpcode()) { in VisitUnaryOperator()
1184 if (isa<UnaryOperator>(Node->getSubExpr())) in VisitUnaryOperator()
1189 PrintExpr(Node->getSubExpr()); in VisitUnaryOperator()
1191 if (Node->isPostfix()) in VisitUnaryOperator()
1192 OS << UnaryOperator::getOpcodeStr(Node->getOpcode()); in VisitUnaryOperator()
1195 void StmtPrinter::VisitOffsetOfExpr(OffsetOfExpr *Node) { in VisitOffsetOfExpr() argument
1197 Node->getTypeSourceInfo()->getType().print(OS, Policy); in VisitOffsetOfExpr()
1200 for (unsigned i = 0, n = Node->getNumComponents(); i < n; ++i) { in VisitOffsetOfExpr()
1201 OffsetOfNode ON = Node->getComponent(i); in VisitOffsetOfExpr()
1205 PrintExpr(Node->getIndexExpr(ON.getArrayExprIndex())); in VisitOffsetOfExpr()
1229 void StmtPrinter::VisitUnaryExprOrTypeTraitExpr(UnaryExprOrTypeTraitExpr *Node){ in VisitUnaryExprOrTypeTraitExpr() argument
1230 switch(Node->getKind()) { in VisitUnaryExprOrTypeTraitExpr()
1252 if (Node->isArgumentType()) { in VisitUnaryExprOrTypeTraitExpr()
1254 Node->getArgumentType().print(OS, Policy); in VisitUnaryExprOrTypeTraitExpr()
1258 PrintExpr(Node->getArgumentExpr()); in VisitUnaryExprOrTypeTraitExpr()
1262 void StmtPrinter::VisitGenericSelectionExpr(GenericSelectionExpr *Node) { in VisitGenericSelectionExpr() argument
1264 PrintExpr(Node->getControllingExpr()); in VisitGenericSelectionExpr()
1265 for (unsigned i = 0; i != Node->getNumAssocs(); ++i) { in VisitGenericSelectionExpr()
1267 QualType T = Node->getAssocType(i); in VisitGenericSelectionExpr()
1273 PrintExpr(Node->getAssocExpr(i)); in VisitGenericSelectionExpr()
1278 void StmtPrinter::VisitArraySubscriptExpr(ArraySubscriptExpr *Node) { in VisitArraySubscriptExpr() argument
1279 PrintExpr(Node->getLHS()); in VisitArraySubscriptExpr()
1281 PrintExpr(Node->getRHS()); in VisitArraySubscriptExpr()
1285 void StmtPrinter::VisitOMPArraySectionExpr(OMPArraySectionExpr *Node) { in VisitOMPArraySectionExpr() argument
1286 PrintExpr(Node->getBase()); in VisitOMPArraySectionExpr()
1288 if (Node->getLowerBound()) in VisitOMPArraySectionExpr()
1289 PrintExpr(Node->getLowerBound()); in VisitOMPArraySectionExpr()
1290 if (Node->getColonLoc().isValid()) { in VisitOMPArraySectionExpr()
1292 if (Node->getLength()) in VisitOMPArraySectionExpr()
1293 PrintExpr(Node->getLength()); in VisitOMPArraySectionExpr()
1323 void StmtPrinter::VisitMemberExpr(MemberExpr *Node) { in VisitMemberExpr() argument
1324 if (!Policy.SuppressImplicitBase || !isImplicitThis(Node->getBase())) { in VisitMemberExpr()
1325 PrintExpr(Node->getBase()); in VisitMemberExpr()
1327 auto *ParentMember = dyn_cast<MemberExpr>(Node->getBase()); in VisitMemberExpr()
1333 OS << (Node->isArrow() ? "->" : "."); in VisitMemberExpr()
1336 if (auto *FD = dyn_cast<FieldDecl>(Node->getMemberDecl())) in VisitMemberExpr()
1340 if (NestedNameSpecifier *Qualifier = Node->getQualifier()) in VisitMemberExpr()
1342 if (Node->hasTemplateKeyword()) in VisitMemberExpr()
1344 OS << Node->getMemberNameInfo(); in VisitMemberExpr()
1345 if (Node->hasExplicitTemplateArgs()) in VisitMemberExpr()
1346 printTemplateArgumentList(OS, Node->template_arguments(), Policy); in VisitMemberExpr()
1349 void StmtPrinter::VisitObjCIsaExpr(ObjCIsaExpr *Node) { in VisitObjCIsaExpr() argument
1350 PrintExpr(Node->getBase()); in VisitObjCIsaExpr()
1351 OS << (Node->isArrow() ? "->isa" : ".isa"); in VisitObjCIsaExpr()
1354 void StmtPrinter::VisitExtVectorElementExpr(ExtVectorElementExpr *Node) { in VisitExtVectorElementExpr() argument
1355 PrintExpr(Node->getBase()); in VisitExtVectorElementExpr()
1357 OS << Node->getAccessor().getName(); in VisitExtVectorElementExpr()
1360 void StmtPrinter::VisitCStyleCastExpr(CStyleCastExpr *Node) { in VisitCStyleCastExpr() argument
1362 Node->getTypeAsWritten().print(OS, Policy); in VisitCStyleCastExpr()
1364 PrintExpr(Node->getSubExpr()); in VisitCStyleCastExpr()
1367 void StmtPrinter::VisitCompoundLiteralExpr(CompoundLiteralExpr *Node) { in VisitCompoundLiteralExpr() argument
1369 Node->getType().print(OS, Policy); in VisitCompoundLiteralExpr()
1371 PrintExpr(Node->getInitializer()); in VisitCompoundLiteralExpr()
1374 void StmtPrinter::VisitImplicitCastExpr(ImplicitCastExpr *Node) { in VisitImplicitCastExpr() argument
1376 PrintExpr(Node->getSubExpr()); in VisitImplicitCastExpr()
1379 void StmtPrinter::VisitBinaryOperator(BinaryOperator *Node) { in VisitBinaryOperator() argument
1380 PrintExpr(Node->getLHS()); in VisitBinaryOperator()
1381 OS << " " << BinaryOperator::getOpcodeStr(Node->getOpcode()) << " "; in VisitBinaryOperator()
1382 PrintExpr(Node->getRHS()); in VisitBinaryOperator()
1385 void StmtPrinter::VisitCompoundAssignOperator(CompoundAssignOperator *Node) { in VisitCompoundAssignOperator() argument
1386 PrintExpr(Node->getLHS()); in VisitCompoundAssignOperator()
1387 OS << " " << BinaryOperator::getOpcodeStr(Node->getOpcode()) << " "; in VisitCompoundAssignOperator()
1388 PrintExpr(Node->getRHS()); in VisitCompoundAssignOperator()
1391 void StmtPrinter::VisitConditionalOperator(ConditionalOperator *Node) { in VisitConditionalOperator() argument
1392 PrintExpr(Node->getCond()); in VisitConditionalOperator()
1394 PrintExpr(Node->getLHS()); in VisitConditionalOperator()
1396 PrintExpr(Node->getRHS()); in VisitConditionalOperator()
1402 StmtPrinter::VisitBinaryConditionalOperator(BinaryConditionalOperator *Node) { in VisitBinaryConditionalOperator() argument
1403 PrintExpr(Node->getCommon()); in VisitBinaryConditionalOperator()
1405 PrintExpr(Node->getFalseExpr()); in VisitBinaryConditionalOperator()
1408 void StmtPrinter::VisitAddrLabelExpr(AddrLabelExpr *Node) { in VisitAddrLabelExpr() argument
1409 OS << "&&" << Node->getLabel()->getName(); in VisitAddrLabelExpr()
1418 void StmtPrinter::VisitChooseExpr(ChooseExpr *Node) { in VisitChooseExpr() argument
1420 PrintExpr(Node->getCond()); in VisitChooseExpr()
1422 PrintExpr(Node->getLHS()); in VisitChooseExpr()
1424 PrintExpr(Node->getRHS()); in VisitChooseExpr()
1432 void StmtPrinter::VisitShuffleVectorExpr(ShuffleVectorExpr *Node) { in VisitShuffleVectorExpr() argument
1434 for (unsigned i = 0, e = Node->getNumSubExprs(); i != e; ++i) { in VisitShuffleVectorExpr()
1436 PrintExpr(Node->getExpr(i)); in VisitShuffleVectorExpr()
1441 void StmtPrinter::VisitConvertVectorExpr(ConvertVectorExpr *Node) { in VisitConvertVectorExpr() argument
1443 PrintExpr(Node->getSrcExpr()); in VisitConvertVectorExpr()
1445 Node->getType().print(OS, Policy); in VisitConvertVectorExpr()
1449 void StmtPrinter::VisitInitListExpr(InitListExpr* Node) { in VisitInitListExpr() argument
1450 if (Node->getSyntacticForm()) { in VisitInitListExpr()
1451 Visit(Node->getSyntacticForm()); in VisitInitListExpr()
1456 for (unsigned i = 0, e = Node->getNumInits(); i != e; ++i) { in VisitInitListExpr()
1458 if (Node->getInit(i)) in VisitInitListExpr()
1459 PrintExpr(Node->getInit(i)); in VisitInitListExpr()
1466 void StmtPrinter::VisitArrayInitLoopExpr(ArrayInitLoopExpr *Node) { in VisitArrayInitLoopExpr() argument
1470 PrintExpr(Node->getSubExpr()); in VisitArrayInitLoopExpr()
1474 void StmtPrinter::VisitArrayInitIndexExpr(ArrayInitIndexExpr *Node) { in VisitArrayInitIndexExpr() argument
1478 void StmtPrinter::VisitParenListExpr(ParenListExpr* Node) { in VisitParenListExpr() argument
1480 for (unsigned i = 0, e = Node->getNumExprs(); i != e; ++i) { in VisitParenListExpr()
1482 PrintExpr(Node->getExpr(i)); in VisitParenListExpr()
1487 void StmtPrinter::VisitDesignatedInitExpr(DesignatedInitExpr *Node) { in VisitDesignatedInitExpr() argument
1489 for (const DesignatedInitExpr::Designator &D : Node->designators()) { in VisitDesignatedInitExpr()
1502 PrintExpr(Node->getArrayIndex(D)); in VisitDesignatedInitExpr()
1504 PrintExpr(Node->getArrayRangeStart(D)); in VisitDesignatedInitExpr()
1506 PrintExpr(Node->getArrayRangeEnd(D)); in VisitDesignatedInitExpr()
1516 PrintExpr(Node->getInit()); in VisitDesignatedInitExpr()
1520 DesignatedInitUpdateExpr *Node) { in VisitDesignatedInitUpdateExpr() argument
1523 PrintExpr(Node->getBase()); in VisitDesignatedInitUpdateExpr()
1527 PrintExpr(Node->getUpdater()); in VisitDesignatedInitUpdateExpr()
1531 void StmtPrinter::VisitNoInitExpr(NoInitExpr *Node) { in VisitNoInitExpr() argument
1535 void StmtPrinter::VisitImplicitValueInitExpr(ImplicitValueInitExpr *Node) { in VisitImplicitValueInitExpr() argument
1536 if (Node->getType()->getAsCXXRecordDecl()) { in VisitImplicitValueInitExpr()
1538 Node->getType().print(OS, Policy); in VisitImplicitValueInitExpr()
1542 Node->getType().print(OS, Policy); in VisitImplicitValueInitExpr()
1544 if (Node->getType()->isRecordType()) in VisitImplicitValueInitExpr()
1551 void StmtPrinter::VisitVAArgExpr(VAArgExpr *Node) { in VisitVAArgExpr() argument
1553 PrintExpr(Node->getSubExpr()); in VisitVAArgExpr()
1555 Node->getType().print(OS, Policy); in VisitVAArgExpr()
1559 void StmtPrinter::VisitPseudoObjectExpr(PseudoObjectExpr *Node) { in VisitPseudoObjectExpr() argument
1560 PrintExpr(Node->getSyntacticForm()); in VisitPseudoObjectExpr()
1563 void StmtPrinter::VisitAtomicExpr(AtomicExpr *Node) { in VisitAtomicExpr() argument
1565 switch (Node->getOp()) { in VisitAtomicExpr()
1576 PrintExpr(Node->getPtr()); in VisitAtomicExpr()
1577 if (Node->getOp() != AtomicExpr::AO__c11_atomic_load && in VisitAtomicExpr()
1578 Node->getOp() != AtomicExpr::AO__atomic_load_n && in VisitAtomicExpr()
1579 Node->getOp() != AtomicExpr::AO__opencl_atomic_load) { in VisitAtomicExpr()
1581 PrintExpr(Node->getVal1()); in VisitAtomicExpr()
1583 if (Node->getOp() == AtomicExpr::AO__atomic_exchange || in VisitAtomicExpr()
1584 Node->isCmpXChg()) { in VisitAtomicExpr()
1586 PrintExpr(Node->getVal2()); in VisitAtomicExpr()
1588 if (Node->getOp() == AtomicExpr::AO__atomic_compare_exchange || in VisitAtomicExpr()
1589 Node->getOp() == AtomicExpr::AO__atomic_compare_exchange_n) { in VisitAtomicExpr()
1591 PrintExpr(Node->getWeak()); in VisitAtomicExpr()
1593 if (Node->getOp() != AtomicExpr::AO__c11_atomic_init && in VisitAtomicExpr()
1594 Node->getOp() != AtomicExpr::AO__opencl_atomic_init) { in VisitAtomicExpr()
1596 PrintExpr(Node->getOrder()); in VisitAtomicExpr()
1598 if (Node->isCmpXChg()) { in VisitAtomicExpr()
1600 PrintExpr(Node->getOrderFail()); in VisitAtomicExpr()
1606 void StmtPrinter::VisitCXXOperatorCallExpr(CXXOperatorCallExpr *Node) { in VisitCXXOperatorCallExpr() argument
1614 OverloadedOperatorKind Kind = Node->getOperator(); in VisitCXXOperatorCallExpr()
1616 if (Node->getNumArgs() == 1) { in VisitCXXOperatorCallExpr()
1618 PrintExpr(Node->getArg(0)); in VisitCXXOperatorCallExpr()
1620 PrintExpr(Node->getArg(0)); in VisitCXXOperatorCallExpr()
1624 PrintExpr(Node->getArg(0)); in VisitCXXOperatorCallExpr()
1626 PrintExpr(Node->getArg(0)); in VisitCXXOperatorCallExpr()
1628 for (unsigned ArgIdx = 1; ArgIdx < Node->getNumArgs(); ++ArgIdx) { in VisitCXXOperatorCallExpr()
1631 if (!isa<CXXDefaultArgExpr>(Node->getArg(ArgIdx))) in VisitCXXOperatorCallExpr()
1632 PrintExpr(Node->getArg(ArgIdx)); in VisitCXXOperatorCallExpr()
1636 PrintExpr(Node->getArg(0)); in VisitCXXOperatorCallExpr()
1638 PrintExpr(Node->getArg(1)); in VisitCXXOperatorCallExpr()
1640 } else if (Node->getNumArgs() == 1) { in VisitCXXOperatorCallExpr()
1642 PrintExpr(Node->getArg(0)); in VisitCXXOperatorCallExpr()
1643 } else if (Node->getNumArgs() == 2) { in VisitCXXOperatorCallExpr()
1644 PrintExpr(Node->getArg(0)); in VisitCXXOperatorCallExpr()
1646 PrintExpr(Node->getArg(1)); in VisitCXXOperatorCallExpr()
1652 void StmtPrinter::VisitCXXMemberCallExpr(CXXMemberCallExpr *Node) { in VisitCXXMemberCallExpr() argument
1654 CXXMethodDecl *MD = Node->getMethodDecl(); in VisitCXXMemberCallExpr()
1656 PrintExpr(Node->getImplicitObjectArgument()); in VisitCXXMemberCallExpr()
1659 VisitCallExpr(cast<CallExpr>(Node)); in VisitCXXMemberCallExpr()
1662 void StmtPrinter::VisitCUDAKernelCallExpr(CUDAKernelCallExpr *Node) { in VisitCUDAKernelCallExpr() argument
1663 PrintExpr(Node->getCallee()); in VisitCUDAKernelCallExpr()
1665 PrintCallArgs(Node->getConfig()); in VisitCUDAKernelCallExpr()
1667 PrintCallArgs(Node); in VisitCUDAKernelCallExpr()
1671 void StmtPrinter::VisitCXXNamedCastExpr(CXXNamedCastExpr *Node) { in VisitCXXNamedCastExpr() argument
1672 OS << Node->getCastName() << '<'; in VisitCXXNamedCastExpr()
1673 Node->getTypeAsWritten().print(OS, Policy); in VisitCXXNamedCastExpr()
1675 PrintExpr(Node->getSubExpr()); in VisitCXXNamedCastExpr()
1679 void StmtPrinter::VisitCXXStaticCastExpr(CXXStaticCastExpr *Node) { in VisitCXXStaticCastExpr() argument
1680 VisitCXXNamedCastExpr(Node); in VisitCXXStaticCastExpr()
1683 void StmtPrinter::VisitCXXDynamicCastExpr(CXXDynamicCastExpr *Node) { in VisitCXXDynamicCastExpr() argument
1684 VisitCXXNamedCastExpr(Node); in VisitCXXDynamicCastExpr()
1687 void StmtPrinter::VisitCXXReinterpretCastExpr(CXXReinterpretCastExpr *Node) { in VisitCXXReinterpretCastExpr() argument
1688 VisitCXXNamedCastExpr(Node); in VisitCXXReinterpretCastExpr()
1691 void StmtPrinter::VisitCXXConstCastExpr(CXXConstCastExpr *Node) { in VisitCXXConstCastExpr() argument
1692 VisitCXXNamedCastExpr(Node); in VisitCXXConstCastExpr()
1695 void StmtPrinter::VisitCXXTypeidExpr(CXXTypeidExpr *Node) { in VisitCXXTypeidExpr() argument
1697 if (Node->isTypeOperand()) { in VisitCXXTypeidExpr()
1698 Node->getTypeOperandSourceInfo()->getType().print(OS, Policy); in VisitCXXTypeidExpr()
1700 PrintExpr(Node->getExprOperand()); in VisitCXXTypeidExpr()
1705 void StmtPrinter::VisitCXXUuidofExpr(CXXUuidofExpr *Node) { in VisitCXXUuidofExpr() argument
1707 if (Node->isTypeOperand()) { in VisitCXXUuidofExpr()
1708 Node->getTypeOperandSourceInfo()->getType().print(OS, Policy); in VisitCXXUuidofExpr()
1710 PrintExpr(Node->getExprOperand()); in VisitCXXUuidofExpr()
1715 void StmtPrinter::VisitMSPropertyRefExpr(MSPropertyRefExpr *Node) { in VisitMSPropertyRefExpr() argument
1716 PrintExpr(Node->getBaseExpr()); in VisitMSPropertyRefExpr()
1717 if (Node->isArrow()) in VisitMSPropertyRefExpr()
1722 Node->getQualifierLoc().getNestedNameSpecifier()) in VisitMSPropertyRefExpr()
1724 OS << Node->getPropertyDecl()->getDeclName(); in VisitMSPropertyRefExpr()
1727 void StmtPrinter::VisitMSPropertySubscriptExpr(MSPropertySubscriptExpr *Node) { in VisitMSPropertySubscriptExpr() argument
1728 PrintExpr(Node->getBase()); in VisitMSPropertySubscriptExpr()
1730 PrintExpr(Node->getIdx()); in VisitMSPropertySubscriptExpr()
1734 void StmtPrinter::VisitUserDefinedLiteral(UserDefinedLiteral *Node) { in VisitUserDefinedLiteral() argument
1735 switch (Node->getLiteralOperatorKind()) { in VisitUserDefinedLiteral()
1737 OS << cast<StringLiteral>(Node->getArg(0)->IgnoreImpCasts())->getString(); in VisitUserDefinedLiteral()
1740 const auto *DRE = cast<DeclRefExpr>(Node->getCallee()->IgnoreImpCasts()); in VisitUserDefinedLiteral()
1746 OS << "operator\"\"" << Node->getUDSuffix()->getName(); in VisitUserDefinedLiteral()
1761 const auto *Int = cast<IntegerLiteral>(Node->getCookedLiteral()); in VisitUserDefinedLiteral()
1767 auto *Float = cast<FloatingLiteral>(Node->getCookedLiteral()); in VisitUserDefinedLiteral()
1773 PrintExpr(Node->getCookedLiteral()); in VisitUserDefinedLiteral()
1776 OS << Node->getUDSuffix()->getName(); in VisitUserDefinedLiteral()
1779 void StmtPrinter::VisitCXXBoolLiteralExpr(CXXBoolLiteralExpr *Node) { in VisitCXXBoolLiteralExpr() argument
1780 OS << (Node->getValue() ? "true" : "false"); in VisitCXXBoolLiteralExpr()
1783 void StmtPrinter::VisitCXXNullPtrLiteralExpr(CXXNullPtrLiteralExpr *Node) { in VisitCXXNullPtrLiteralExpr() argument
1787 void StmtPrinter::VisitCXXThisExpr(CXXThisExpr *Node) { in VisitCXXThisExpr() argument
1791 void StmtPrinter::VisitCXXThrowExpr(CXXThrowExpr *Node) { in VisitCXXThrowExpr() argument
1792 if (!Node->getSubExpr()) in VisitCXXThrowExpr()
1796 PrintExpr(Node->getSubExpr()); in VisitCXXThrowExpr()
1800 void StmtPrinter::VisitCXXDefaultArgExpr(CXXDefaultArgExpr *Node) { in VisitCXXDefaultArgExpr() argument
1804 void StmtPrinter::VisitCXXDefaultInitExpr(CXXDefaultInitExpr *Node) { in VisitCXXDefaultInitExpr() argument
1808 void StmtPrinter::VisitCXXFunctionalCastExpr(CXXFunctionalCastExpr *Node) { in VisitCXXFunctionalCastExpr() argument
1809 Node->getType().print(OS, Policy); in VisitCXXFunctionalCastExpr()
1812 if (Node->getLParenLoc().isValid()) in VisitCXXFunctionalCastExpr()
1814 PrintExpr(Node->getSubExpr()); in VisitCXXFunctionalCastExpr()
1815 if (Node->getLParenLoc().isValid()) in VisitCXXFunctionalCastExpr()
1819 void StmtPrinter::VisitCXXBindTemporaryExpr(CXXBindTemporaryExpr *Node) { in VisitCXXBindTemporaryExpr() argument
1820 PrintExpr(Node->getSubExpr()); in VisitCXXBindTemporaryExpr()
1823 void StmtPrinter::VisitCXXTemporaryObjectExpr(CXXTemporaryObjectExpr *Node) { in VisitCXXTemporaryObjectExpr() argument
1824 Node->getType().print(OS, Policy); in VisitCXXTemporaryObjectExpr()
1825 if (Node->isStdInitListInitialization()) in VisitCXXTemporaryObjectExpr()
1827 else if (Node->isListInitialization()) in VisitCXXTemporaryObjectExpr()
1831 for (CXXTemporaryObjectExpr::arg_iterator Arg = Node->arg_begin(), in VisitCXXTemporaryObjectExpr()
1832 ArgEnd = Node->arg_end(); in VisitCXXTemporaryObjectExpr()
1836 if (Arg != Node->arg_begin()) in VisitCXXTemporaryObjectExpr()
1840 if (Node->isStdInitListInitialization()) in VisitCXXTemporaryObjectExpr()
1842 else if (Node->isListInitialization()) in VisitCXXTemporaryObjectExpr()
1848 void StmtPrinter::VisitLambdaExpr(LambdaExpr *Node) { in VisitLambdaExpr() argument
1851 switch (Node->getCaptureDefault()) { in VisitLambdaExpr()
1865 for (LambdaExpr::capture_iterator C = Node->explicit_capture_begin(), in VisitLambdaExpr()
1866 CEnd = Node->explicit_capture_end(); in VisitLambdaExpr()
1886 if (Node->getCaptureDefault() != LCD_ByRef || Node->isInitCapture(C)) in VisitLambdaExpr()
1899 if (Node->isInitCapture(C)) in VisitLambdaExpr()
1904 if (Node->hasExplicitParameters()) { in VisitLambdaExpr()
1906 CXXMethodDecl *Method = Node->getCallOperator(); in VisitLambdaExpr()
1924 if (Node->isMutable()) in VisitLambdaExpr()
1933 if (Node->hasExplicitResultType()) { in VisitLambdaExpr()
1940 CompoundStmt *Body = Node->getBody(); in VisitLambdaExpr()
1945 void StmtPrinter::VisitCXXScalarValueInitExpr(CXXScalarValueInitExpr *Node) { in VisitCXXScalarValueInitExpr() argument
1946 if (TypeSourceInfo *TSInfo = Node->getTypeSourceInfo()) in VisitCXXScalarValueInitExpr()
1949 Node->getType().print(OS, Policy); in VisitCXXScalarValueInitExpr()
2051 CXXUnresolvedConstructExpr *Node) { in VisitCXXUnresolvedConstructExpr() argument
2052 Node->getTypeAsWritten().print(OS, Policy); in VisitCXXUnresolvedConstructExpr()
2054 for (CXXUnresolvedConstructExpr::arg_iterator Arg = Node->arg_begin(), in VisitCXXUnresolvedConstructExpr()
2055 ArgEnd = Node->arg_end(); in VisitCXXUnresolvedConstructExpr()
2057 if (Arg != Node->arg_begin()) in VisitCXXUnresolvedConstructExpr()
2065 CXXDependentScopeMemberExpr *Node) { in VisitCXXDependentScopeMemberExpr() argument
2066 if (!Node->isImplicitAccess()) { in VisitCXXDependentScopeMemberExpr()
2067 PrintExpr(Node->getBase()); in VisitCXXDependentScopeMemberExpr()
2068 OS << (Node->isArrow() ? "->" : "."); in VisitCXXDependentScopeMemberExpr()
2070 if (NestedNameSpecifier *Qualifier = Node->getQualifier()) in VisitCXXDependentScopeMemberExpr()
2072 if (Node->hasTemplateKeyword()) in VisitCXXDependentScopeMemberExpr()
2074 OS << Node->getMemberNameInfo(); in VisitCXXDependentScopeMemberExpr()
2075 if (Node->hasExplicitTemplateArgs()) in VisitCXXDependentScopeMemberExpr()
2076 printTemplateArgumentList(OS, Node->template_arguments(), Policy); in VisitCXXDependentScopeMemberExpr()
2079 void StmtPrinter::VisitUnresolvedMemberExpr(UnresolvedMemberExpr *Node) { in VisitUnresolvedMemberExpr() argument
2080 if (!Node->isImplicitAccess()) { in VisitUnresolvedMemberExpr()
2081 PrintExpr(Node->getBase()); in VisitUnresolvedMemberExpr()
2082 OS << (Node->isArrow() ? "->" : "."); in VisitUnresolvedMemberExpr()
2084 if (NestedNameSpecifier *Qualifier = Node->getQualifier()) in VisitUnresolvedMemberExpr()
2086 if (Node->hasTemplateKeyword()) in VisitUnresolvedMemberExpr()
2088 OS << Node->getMemberNameInfo(); in VisitUnresolvedMemberExpr()
2089 if (Node->hasExplicitTemplateArgs()) in VisitUnresolvedMemberExpr()
2090 printTemplateArgumentList(OS, Node->template_arguments(), Policy); in VisitUnresolvedMemberExpr()
2160 SubstNonTypeTemplateParmPackExpr *Node) { in VisitSubstNonTypeTemplateParmPackExpr() argument
2161 OS << *Node->getParameterPack(); in VisitSubstNonTypeTemplateParmPackExpr()
2165 SubstNonTypeTemplateParmExpr *Node) { in VisitSubstNonTypeTemplateParmExpr() argument
2166 Visit(Node->getReplacement()); in VisitSubstNonTypeTemplateParmExpr()
2173 void StmtPrinter::VisitMaterializeTemporaryExpr(MaterializeTemporaryExpr *Node){ in VisitMaterializeTemporaryExpr() argument
2174 PrintExpr(Node->GetTemporaryExpr()); in VisitMaterializeTemporaryExpr()
2223 void StmtPrinter::VisitObjCStringLiteral(ObjCStringLiteral *Node) { in VisitObjCStringLiteral() argument
2225 VisitStringLiteral(Node->getString()); in VisitObjCStringLiteral()
2260 void StmtPrinter::VisitObjCEncodeExpr(ObjCEncodeExpr *Node) { in VisitObjCEncodeExpr() argument
2262 Node->getEncodedType().print(OS, Policy); in VisitObjCEncodeExpr()
2266 void StmtPrinter::VisitObjCSelectorExpr(ObjCSelectorExpr *Node) { in VisitObjCSelectorExpr() argument
2268 Node->getSelector().print(OS); in VisitObjCSelectorExpr()
2272 void StmtPrinter::VisitObjCProtocolExpr(ObjCProtocolExpr *Node) { in VisitObjCProtocolExpr() argument
2273 OS << "@protocol(" << *Node->getProtocol() << ')'; in VisitObjCProtocolExpr()
2314 void StmtPrinter::VisitObjCBoolLiteralExpr(ObjCBoolLiteralExpr *Node) { in VisitObjCBoolLiteralExpr() argument
2315 OS << (Node->getValue() ? "__objc_yes" : "__objc_no"); in VisitObjCBoolLiteralExpr()
2331 void StmtPrinter::VisitBlockExpr(BlockExpr *Node) { in VisitBlockExpr() argument
2332 BlockDecl *BD = Node->getBlockDecl(); in VisitBlockExpr()
2335 const FunctionType *AFT = Node->getFunctionType(); in VisitBlockExpr()
2358 void StmtPrinter::VisitOpaqueValueExpr(OpaqueValueExpr *Node) { in VisitOpaqueValueExpr() argument
2359 PrintExpr(Node->getSourceExpr()); in VisitOpaqueValueExpr()
2362 void StmtPrinter::VisitTypoExpr(TypoExpr *Node) { in VisitTypoExpr() argument
2367 void StmtPrinter::VisitAsTypeExpr(AsTypeExpr *Node) { in VisitAsTypeExpr() argument
2369 PrintExpr(Node->getSrcExpr()); in VisitAsTypeExpr()
2371 Node->getType().print(OS, Policy); in VisitAsTypeExpr()