Lines Matching refs:Node

153     void VisitStmt(Stmt *Node) LLVM_ATTRIBUTE_UNUSED {  in VisitStmt()  argument
157 void VisitExpr(Expr *Node) LLVM_ATTRIBUTE_UNUSED { in VisitExpr() argument
161 void VisitCXXNamedCastExpr(CXXNamedCastExpr *Node);
165 void Visit##CLASS(CLASS *Node);
177 void StmtPrinter::PrintRawCompoundStmt(CompoundStmt *Node) { in PrintRawCompoundStmt() argument
178 assert(Node && "Compound statement cannot be null"); in PrintRawCompoundStmt()
180 PrintFPPragmas(Node); in PrintRawCompoundStmt()
181 for (auto *I : Node->body()) in PrintRawCompoundStmt()
256 void StmtPrinter::VisitNullStmt(NullStmt *Node) { in VisitNullStmt() argument
260 void StmtPrinter::VisitDeclStmt(DeclStmt *Node) { in VisitDeclStmt() argument
262 PrintRawDeclStmt(Node); in VisitDeclStmt()
266 void StmtPrinter::VisitCompoundStmt(CompoundStmt *Node) { in VisitCompoundStmt() argument
268 PrintRawCompoundStmt(Node); in VisitCompoundStmt()
272 void StmtPrinter::VisitCaseStmt(CaseStmt *Node) { in VisitCaseStmt() argument
274 PrintExpr(Node->getLHS()); in VisitCaseStmt()
275 if (Node->getRHS()) { in VisitCaseStmt()
277 PrintExpr(Node->getRHS()); in VisitCaseStmt()
281 PrintStmt(Node->getSubStmt(), 0); in VisitCaseStmt()
284 void StmtPrinter::VisitDefaultStmt(DefaultStmt *Node) { in VisitDefaultStmt() argument
286 PrintStmt(Node->getSubStmt(), 0); in VisitDefaultStmt()
289 void StmtPrinter::VisitLabelStmt(LabelStmt *Node) { in VisitLabelStmt() argument
290 Indent(-1) << Node->getName() << ":" << NL; in VisitLabelStmt()
291 PrintStmt(Node->getSubStmt(), 0); in VisitLabelStmt()
294 void StmtPrinter::VisitAttributedStmt(AttributedStmt *Node) { in VisitAttributedStmt() argument
295 llvm::ArrayRef<const Attr *> Attrs = Node->getAttrs(); in VisitAttributedStmt()
302 PrintStmt(Node->getSubStmt(), 0); in VisitAttributedStmt()
363 void StmtPrinter::VisitSwitchStmt(SwitchStmt *Node) { in VisitSwitchStmt() argument
365 if (Node->getInit()) in VisitSwitchStmt()
366 PrintInitStmt(Node->getInit(), 8); in VisitSwitchStmt()
367 if (const DeclStmt *DS = Node->getConditionVariableDeclStmt()) in VisitSwitchStmt()
370 PrintExpr(Node->getCond()); in VisitSwitchStmt()
372 PrintControlledStmt(Node->getBody()); in VisitSwitchStmt()
375 void StmtPrinter::VisitWhileStmt(WhileStmt *Node) { in VisitWhileStmt() argument
377 if (const DeclStmt *DS = Node->getConditionVariableDeclStmt()) in VisitWhileStmt()
380 PrintExpr(Node->getCond()); in VisitWhileStmt()
382 PrintStmt(Node->getBody()); in VisitWhileStmt()
385 void StmtPrinter::VisitDoStmt(DoStmt *Node) { in VisitDoStmt() argument
387 if (auto *CS = dyn_cast<CompoundStmt>(Node->getBody())) { in VisitDoStmt()
392 PrintStmt(Node->getBody()); in VisitDoStmt()
397 PrintExpr(Node->getCond()); in VisitDoStmt()
401 void StmtPrinter::VisitForStmt(ForStmt *Node) { in VisitForStmt() argument
403 if (Node->getInit()) in VisitForStmt()
404 PrintInitStmt(Node->getInit(), 5); in VisitForStmt()
406 OS << (Node->getCond() ? "; " : ";"); in VisitForStmt()
407 if (const DeclStmt *DS = Node->getConditionVariableDeclStmt()) in VisitForStmt()
409 else if (Node->getCond()) in VisitForStmt()
410 PrintExpr(Node->getCond()); in VisitForStmt()
412 if (Node->getInc()) { in VisitForStmt()
414 PrintExpr(Node->getInc()); in VisitForStmt()
417 PrintControlledStmt(Node->getBody()); in VisitForStmt()
420 void StmtPrinter::VisitObjCForCollectionStmt(ObjCForCollectionStmt *Node) { in VisitObjCForCollectionStmt() argument
422 if (auto *DS = dyn_cast<DeclStmt>(Node->getElement())) in VisitObjCForCollectionStmt()
425 PrintExpr(cast<Expr>(Node->getElement())); in VisitObjCForCollectionStmt()
427 PrintExpr(Node->getCollection()); in VisitObjCForCollectionStmt()
429 PrintControlledStmt(Node->getBody()); in VisitObjCForCollectionStmt()
432 void StmtPrinter::VisitCXXForRangeStmt(CXXForRangeStmt *Node) { in VisitCXXForRangeStmt() argument
434 if (Node->getInit()) in VisitCXXForRangeStmt()
435 PrintInitStmt(Node->getInit(), 5); in VisitCXXForRangeStmt()
438 Node->getLoopVariable()->print(OS, SubPolicy, IndentLevel); in VisitCXXForRangeStmt()
440 PrintExpr(Node->getRangeInit()); in VisitCXXForRangeStmt()
442 PrintControlledStmt(Node->getBody()); in VisitCXXForRangeStmt()
445 void StmtPrinter::VisitMSDependentExistsStmt(MSDependentExistsStmt *Node) { in VisitMSDependentExistsStmt() argument
447 if (Node->isIfExists()) in VisitMSDependentExistsStmt()
453 = Node->getQualifierLoc().getNestedNameSpecifier()) in VisitMSDependentExistsStmt()
456 OS << Node->getNameInfo() << ") "; in VisitMSDependentExistsStmt()
458 PrintRawCompoundStmt(Node->getSubStmt()); in VisitMSDependentExistsStmt()
461 void StmtPrinter::VisitGotoStmt(GotoStmt *Node) { in VisitGotoStmt() argument
462 Indent() << "goto " << Node->getLabel()->getName() << ";"; in VisitGotoStmt()
466 void StmtPrinter::VisitIndirectGotoStmt(IndirectGotoStmt *Node) { in VisitIndirectGotoStmt() argument
468 PrintExpr(Node->getTarget()); in VisitIndirectGotoStmt()
473 void StmtPrinter::VisitContinueStmt(ContinueStmt *Node) { in VisitContinueStmt() argument
478 void StmtPrinter::VisitBreakStmt(BreakStmt *Node) { in VisitBreakStmt() argument
483 void StmtPrinter::VisitReturnStmt(ReturnStmt *Node) { in VisitReturnStmt() argument
485 if (Node->getRetValue()) { in VisitReturnStmt()
487 PrintExpr(Node->getRetValue()); in VisitReturnStmt()
493 void StmtPrinter::VisitGCCAsmStmt(GCCAsmStmt *Node) { in VisitGCCAsmStmt() argument
496 if (Node->isVolatile()) in VisitGCCAsmStmt()
499 if (Node->isAsmGoto()) in VisitGCCAsmStmt()
503 VisitStringLiteral(Node->getAsmString()); in VisitGCCAsmStmt()
506 if (Node->getNumOutputs() != 0 || Node->getNumInputs() != 0 || in VisitGCCAsmStmt()
507 Node->getNumClobbers() != 0 || Node->getNumLabels() != 0) in VisitGCCAsmStmt()
510 for (unsigned i = 0, e = Node->getNumOutputs(); i != e; ++i) { in VisitGCCAsmStmt()
514 if (!Node->getOutputName(i).empty()) { in VisitGCCAsmStmt()
516 OS << Node->getOutputName(i); in VisitGCCAsmStmt()
520 VisitStringLiteral(Node->getOutputConstraintLiteral(i)); in VisitGCCAsmStmt()
522 Visit(Node->getOutputExpr(i)); in VisitGCCAsmStmt()
527 if (Node->getNumInputs() != 0 || Node->getNumClobbers() != 0 || in VisitGCCAsmStmt()
528 Node->getNumLabels() != 0) in VisitGCCAsmStmt()
531 for (unsigned i = 0, e = Node->getNumInputs(); i != e; ++i) { in VisitGCCAsmStmt()
535 if (!Node->getInputName(i).empty()) { in VisitGCCAsmStmt()
537 OS << Node->getInputName(i); in VisitGCCAsmStmt()
541 VisitStringLiteral(Node->getInputConstraintLiteral(i)); in VisitGCCAsmStmt()
543 Visit(Node->getInputExpr(i)); in VisitGCCAsmStmt()
548 if (Node->getNumClobbers() != 0 || Node->getNumLabels()) in VisitGCCAsmStmt()
551 for (unsigned i = 0, e = Node->getNumClobbers(); i != e; ++i) { in VisitGCCAsmStmt()
555 VisitStringLiteral(Node->getClobberStringLiteral(i)); in VisitGCCAsmStmt()
559 if (Node->getNumLabels() != 0) in VisitGCCAsmStmt()
562 for (unsigned i = 0, e = Node->getNumLabels(); i != e; ++i) { in VisitGCCAsmStmt()
565 OS << Node->getLabelName(i); in VisitGCCAsmStmt()
572 void StmtPrinter::VisitMSAsmStmt(MSAsmStmt *Node) { in VisitMSAsmStmt() argument
575 if (Node->hasBraces()) in VisitMSAsmStmt()
577 OS << Node->getAsmString() << NL; in VisitMSAsmStmt()
578 if (Node->hasBraces()) in VisitMSAsmStmt()
582 void StmtPrinter::VisitCapturedStmt(CapturedStmt *Node) { in VisitCapturedStmt() argument
583 PrintStmt(Node->getCapturedDecl()->getBody()); in VisitCapturedStmt()
586 void StmtPrinter::VisitObjCAtTryStmt(ObjCAtTryStmt *Node) { in VisitObjCAtTryStmt() argument
588 if (auto *TS = dyn_cast<CompoundStmt>(Node->getTryBody())) { in VisitObjCAtTryStmt()
593 for (ObjCAtCatchStmt *catchStmt : Node->catch_stmts()) { in VisitObjCAtTryStmt()
604 if (auto *FS = static_cast<ObjCAtFinallyStmt *>(Node->getFinallyStmt())) { in VisitObjCAtTryStmt()
613 void StmtPrinter::VisitObjCAtFinallyStmt(ObjCAtFinallyStmt *Node) { in VisitObjCAtFinallyStmt() argument
616 void StmtPrinter::VisitObjCAtCatchStmt (ObjCAtCatchStmt *Node) { in VisitObjCAtCatchStmt() argument
620 void StmtPrinter::VisitObjCAtThrowStmt(ObjCAtThrowStmt *Node) { in VisitObjCAtThrowStmt() argument
622 if (Node->getThrowExpr()) { in VisitObjCAtThrowStmt()
624 PrintExpr(Node->getThrowExpr()); in VisitObjCAtThrowStmt()
630 ObjCAvailabilityCheckExpr *Node) { in VisitObjCAvailabilityCheckExpr() argument
634 void StmtPrinter::VisitObjCAtSynchronizedStmt(ObjCAtSynchronizedStmt *Node) { in VisitObjCAtSynchronizedStmt() argument
636 PrintExpr(Node->getSynchExpr()); in VisitObjCAtSynchronizedStmt()
638 PrintRawCompoundStmt(Node->getSynchBody()); in VisitObjCAtSynchronizedStmt()
642 void StmtPrinter::VisitObjCAutoreleasePoolStmt(ObjCAutoreleasePoolStmt *Node) { in VisitObjCAutoreleasePoolStmt() argument
644 PrintRawCompoundStmt(cast<CompoundStmt>(Node->getSubStmt())); in VisitObjCAutoreleasePoolStmt()
648 void StmtPrinter::PrintRawCXXCatchStmt(CXXCatchStmt *Node) { in PrintRawCXXCatchStmt() argument
650 if (Decl *ExDecl = Node->getExceptionDecl()) in PrintRawCXXCatchStmt()
655 PrintRawCompoundStmt(cast<CompoundStmt>(Node->getHandlerBlock())); in PrintRawCXXCatchStmt()
658 void StmtPrinter::VisitCXXCatchStmt(CXXCatchStmt *Node) { in VisitCXXCatchStmt() argument
660 PrintRawCXXCatchStmt(Node); in VisitCXXCatchStmt()
664 void StmtPrinter::VisitCXXTryStmt(CXXTryStmt *Node) { in VisitCXXTryStmt() argument
666 PrintRawCompoundStmt(Node->getTryBlock()); in VisitCXXTryStmt()
667 for (unsigned i = 0, e = Node->getNumHandlers(); i < e; ++i) { in VisitCXXTryStmt()
669 PrintRawCXXCatchStmt(Node->getHandler(i)); in VisitCXXTryStmt()
674 void StmtPrinter::VisitSEHTryStmt(SEHTryStmt *Node) { in VisitSEHTryStmt() argument
675 Indent() << (Node->getIsCXXTry() ? "try " : "__try "); in VisitSEHTryStmt()
676 PrintRawCompoundStmt(Node->getTryBlock()); in VisitSEHTryStmt()
677 SEHExceptStmt *E = Node->getExceptHandler(); in VisitSEHTryStmt()
678 SEHFinallyStmt *F = Node->getFinallyHandler(); in VisitSEHTryStmt()
688 void StmtPrinter::PrintRawSEHFinallyStmt(SEHFinallyStmt *Node) { in PrintRawSEHFinallyStmt() argument
690 PrintRawCompoundStmt(Node->getBlock()); in PrintRawSEHFinallyStmt()
694 void StmtPrinter::PrintRawSEHExceptHandler(SEHExceptStmt *Node) { in PrintRawSEHExceptHandler() argument
696 VisitExpr(Node->getFilterExpr()); in PrintRawSEHExceptHandler()
698 PrintRawCompoundStmt(Node->getBlock()); in PrintRawSEHExceptHandler()
702 void StmtPrinter::VisitSEHExceptStmt(SEHExceptStmt *Node) { in VisitSEHExceptStmt() argument
704 PrintRawSEHExceptHandler(Node); in VisitSEHExceptStmt()
708 void StmtPrinter::VisitSEHFinallyStmt(SEHFinallyStmt *Node) { in VisitSEHFinallyStmt() argument
710 PrintRawSEHFinallyStmt(Node); in VisitSEHFinallyStmt()
714 void StmtPrinter::VisitSEHLeaveStmt(SEHLeaveStmt *Node) { in VisitSEHLeaveStmt() argument
723 void StmtPrinter::VisitOMPCanonicalLoop(OMPCanonicalLoop *Node) { in VisitOMPCanonicalLoop() argument
724 PrintStmt(Node->getLoopStmt()); in VisitOMPCanonicalLoop()
741 void StmtPrinter::VisitOMPMetaDirective(OMPMetaDirective *Node) { in VisitOMPMetaDirective() argument
743 PrintOMPExecutableDirective(Node); in VisitOMPMetaDirective()
746 void StmtPrinter::VisitOMPParallelDirective(OMPParallelDirective *Node) { in VisitOMPParallelDirective() argument
748 PrintOMPExecutableDirective(Node); in VisitOMPParallelDirective()
751 void StmtPrinter::VisitOMPSimdDirective(OMPSimdDirective *Node) { in VisitOMPSimdDirective() argument
753 PrintOMPExecutableDirective(Node); in VisitOMPSimdDirective()
756 void StmtPrinter::VisitOMPTileDirective(OMPTileDirective *Node) { in VisitOMPTileDirective() argument
758 PrintOMPExecutableDirective(Node); in VisitOMPTileDirective()
761 void StmtPrinter::VisitOMPUnrollDirective(OMPUnrollDirective *Node) { in VisitOMPUnrollDirective() argument
763 PrintOMPExecutableDirective(Node); in VisitOMPUnrollDirective()
766 void StmtPrinter::VisitOMPReverseDirective(OMPReverseDirective *Node) { in VisitOMPReverseDirective() argument
768 PrintOMPExecutableDirective(Node); in VisitOMPReverseDirective()
771 void StmtPrinter::VisitOMPInterchangeDirective(OMPInterchangeDirective *Node) { in VisitOMPInterchangeDirective() argument
773 PrintOMPExecutableDirective(Node); in VisitOMPInterchangeDirective()
776 void StmtPrinter::VisitOMPForDirective(OMPForDirective *Node) { in VisitOMPForDirective() argument
778 PrintOMPExecutableDirective(Node); in VisitOMPForDirective()
781 void StmtPrinter::VisitOMPForSimdDirective(OMPForSimdDirective *Node) { in VisitOMPForSimdDirective() argument
783 PrintOMPExecutableDirective(Node); in VisitOMPForSimdDirective()
786 void StmtPrinter::VisitOMPSectionsDirective(OMPSectionsDirective *Node) { in VisitOMPSectionsDirective() argument
788 PrintOMPExecutableDirective(Node); in VisitOMPSectionsDirective()
791 void StmtPrinter::VisitOMPSectionDirective(OMPSectionDirective *Node) { in VisitOMPSectionDirective() argument
793 PrintOMPExecutableDirective(Node); in VisitOMPSectionDirective()
796 void StmtPrinter::VisitOMPScopeDirective(OMPScopeDirective *Node) { in VisitOMPScopeDirective() argument
798 PrintOMPExecutableDirective(Node); in VisitOMPScopeDirective()
801 void StmtPrinter::VisitOMPSingleDirective(OMPSingleDirective *Node) { in VisitOMPSingleDirective() argument
803 PrintOMPExecutableDirective(Node); in VisitOMPSingleDirective()
806 void StmtPrinter::VisitOMPMasterDirective(OMPMasterDirective *Node) { in VisitOMPMasterDirective() argument
808 PrintOMPExecutableDirective(Node); in VisitOMPMasterDirective()
811 void StmtPrinter::VisitOMPCriticalDirective(OMPCriticalDirective *Node) { in VisitOMPCriticalDirective() argument
813 if (Node->getDirectiveName().getName()) { in VisitOMPCriticalDirective()
815 Node->getDirectiveName().printName(OS, Policy); in VisitOMPCriticalDirective()
818 PrintOMPExecutableDirective(Node); in VisitOMPCriticalDirective()
821 void StmtPrinter::VisitOMPParallelForDirective(OMPParallelForDirective *Node) { in VisitOMPParallelForDirective() argument
823 PrintOMPExecutableDirective(Node); in VisitOMPParallelForDirective()
827 OMPParallelForSimdDirective *Node) { in VisitOMPParallelForSimdDirective() argument
829 PrintOMPExecutableDirective(Node); in VisitOMPParallelForSimdDirective()
833 OMPParallelMasterDirective *Node) { in VisitOMPParallelMasterDirective() argument
835 PrintOMPExecutableDirective(Node); in VisitOMPParallelMasterDirective()
839 OMPParallelMaskedDirective *Node) { in VisitOMPParallelMaskedDirective() argument
841 PrintOMPExecutableDirective(Node); in VisitOMPParallelMaskedDirective()
845 OMPParallelSectionsDirective *Node) { in VisitOMPParallelSectionsDirective() argument
847 PrintOMPExecutableDirective(Node); in VisitOMPParallelSectionsDirective()
850 void StmtPrinter::VisitOMPTaskDirective(OMPTaskDirective *Node) { in VisitOMPTaskDirective() argument
852 PrintOMPExecutableDirective(Node); in VisitOMPTaskDirective()
855 void StmtPrinter::VisitOMPTaskyieldDirective(OMPTaskyieldDirective *Node) { in VisitOMPTaskyieldDirective() argument
857 PrintOMPExecutableDirective(Node); in VisitOMPTaskyieldDirective()
860 void StmtPrinter::VisitOMPBarrierDirective(OMPBarrierDirective *Node) { in VisitOMPBarrierDirective() argument
862 PrintOMPExecutableDirective(Node); in VisitOMPBarrierDirective()
865 void StmtPrinter::VisitOMPTaskwaitDirective(OMPTaskwaitDirective *Node) { in VisitOMPTaskwaitDirective() argument
867 PrintOMPExecutableDirective(Node); in VisitOMPTaskwaitDirective()
870 void StmtPrinter::VisitOMPErrorDirective(OMPErrorDirective *Node) { in VisitOMPErrorDirective() argument
872 PrintOMPExecutableDirective(Node); in VisitOMPErrorDirective()
875 void StmtPrinter::VisitOMPTaskgroupDirective(OMPTaskgroupDirective *Node) { in VisitOMPTaskgroupDirective() argument
877 PrintOMPExecutableDirective(Node); in VisitOMPTaskgroupDirective()
880 void StmtPrinter::VisitOMPFlushDirective(OMPFlushDirective *Node) { in VisitOMPFlushDirective() argument
882 PrintOMPExecutableDirective(Node); in VisitOMPFlushDirective()
885 void StmtPrinter::VisitOMPDepobjDirective(OMPDepobjDirective *Node) { in VisitOMPDepobjDirective() argument
887 PrintOMPExecutableDirective(Node); in VisitOMPDepobjDirective()
890 void StmtPrinter::VisitOMPScanDirective(OMPScanDirective *Node) { in VisitOMPScanDirective() argument
892 PrintOMPExecutableDirective(Node); in VisitOMPScanDirective()
895 void StmtPrinter::VisitOMPOrderedDirective(OMPOrderedDirective *Node) { in VisitOMPOrderedDirective() argument
897 PrintOMPExecutableDirective(Node, Node->hasClausesOfKind<OMPDependClause>()); in VisitOMPOrderedDirective()
900 void StmtPrinter::VisitOMPAtomicDirective(OMPAtomicDirective *Node) { in VisitOMPAtomicDirective() argument
902 PrintOMPExecutableDirective(Node); in VisitOMPAtomicDirective()
905 void StmtPrinter::VisitOMPTargetDirective(OMPTargetDirective *Node) { in VisitOMPTargetDirective() argument
907 PrintOMPExecutableDirective(Node); in VisitOMPTargetDirective()
910 void StmtPrinter::VisitOMPTargetDataDirective(OMPTargetDataDirective *Node) { in VisitOMPTargetDataDirective() argument
912 PrintOMPExecutableDirective(Node); in VisitOMPTargetDataDirective()
916 OMPTargetEnterDataDirective *Node) { in VisitOMPTargetEnterDataDirective() argument
918 PrintOMPExecutableDirective(Node, /*ForceNoStmt=*/true); in VisitOMPTargetEnterDataDirective()
922 OMPTargetExitDataDirective *Node) { in VisitOMPTargetExitDataDirective() argument
924 PrintOMPExecutableDirective(Node, /*ForceNoStmt=*/true); in VisitOMPTargetExitDataDirective()
928 OMPTargetParallelDirective *Node) { in VisitOMPTargetParallelDirective() argument
930 PrintOMPExecutableDirective(Node); in VisitOMPTargetParallelDirective()
934 OMPTargetParallelForDirective *Node) { in VisitOMPTargetParallelForDirective() argument
936 PrintOMPExecutableDirective(Node); in VisitOMPTargetParallelForDirective()
939 void StmtPrinter::VisitOMPTeamsDirective(OMPTeamsDirective *Node) { in VisitOMPTeamsDirective() argument
941 PrintOMPExecutableDirective(Node); in VisitOMPTeamsDirective()
945 OMPCancellationPointDirective *Node) { in VisitOMPCancellationPointDirective() argument
947 << getOpenMPDirectiveName(Node->getCancelRegion()); in VisitOMPCancellationPointDirective()
948 PrintOMPExecutableDirective(Node); in VisitOMPCancellationPointDirective()
951 void StmtPrinter::VisitOMPCancelDirective(OMPCancelDirective *Node) { in VisitOMPCancelDirective() argument
953 << getOpenMPDirectiveName(Node->getCancelRegion()); in VisitOMPCancelDirective()
954 PrintOMPExecutableDirective(Node); in VisitOMPCancelDirective()
957 void StmtPrinter::VisitOMPTaskLoopDirective(OMPTaskLoopDirective *Node) { in VisitOMPTaskLoopDirective() argument
959 PrintOMPExecutableDirective(Node); in VisitOMPTaskLoopDirective()
963 OMPTaskLoopSimdDirective *Node) { in VisitOMPTaskLoopSimdDirective() argument
965 PrintOMPExecutableDirective(Node); in VisitOMPTaskLoopSimdDirective()
969 OMPMasterTaskLoopDirective *Node) { in VisitOMPMasterTaskLoopDirective() argument
971 PrintOMPExecutableDirective(Node); in VisitOMPMasterTaskLoopDirective()
975 OMPMaskedTaskLoopDirective *Node) { in VisitOMPMaskedTaskLoopDirective() argument
977 PrintOMPExecutableDirective(Node); in VisitOMPMaskedTaskLoopDirective()
981 OMPMasterTaskLoopSimdDirective *Node) { in VisitOMPMasterTaskLoopSimdDirective() argument
983 PrintOMPExecutableDirective(Node); in VisitOMPMasterTaskLoopSimdDirective()
987 OMPMaskedTaskLoopSimdDirective *Node) { in VisitOMPMaskedTaskLoopSimdDirective() argument
989 PrintOMPExecutableDirective(Node); in VisitOMPMaskedTaskLoopSimdDirective()
993 OMPParallelMasterTaskLoopDirective *Node) { in VisitOMPParallelMasterTaskLoopDirective() argument
995 PrintOMPExecutableDirective(Node); in VisitOMPParallelMasterTaskLoopDirective()
999 OMPParallelMaskedTaskLoopDirective *Node) { in VisitOMPParallelMaskedTaskLoopDirective() argument
1001 PrintOMPExecutableDirective(Node); in VisitOMPParallelMaskedTaskLoopDirective()
1005 OMPParallelMasterTaskLoopSimdDirective *Node) { in VisitOMPParallelMasterTaskLoopSimdDirective() argument
1007 PrintOMPExecutableDirective(Node); in VisitOMPParallelMasterTaskLoopSimdDirective()
1011 OMPParallelMaskedTaskLoopSimdDirective *Node) { in VisitOMPParallelMaskedTaskLoopSimdDirective() argument
1013 PrintOMPExecutableDirective(Node); in VisitOMPParallelMaskedTaskLoopSimdDirective()
1016 void StmtPrinter::VisitOMPDistributeDirective(OMPDistributeDirective *Node) { in VisitOMPDistributeDirective() argument
1018 PrintOMPExecutableDirective(Node); in VisitOMPDistributeDirective()
1022 OMPTargetUpdateDirective *Node) { in VisitOMPTargetUpdateDirective() argument
1024 PrintOMPExecutableDirective(Node, /*ForceNoStmt=*/true); in VisitOMPTargetUpdateDirective()
1028 OMPDistributeParallelForDirective *Node) { in VisitOMPDistributeParallelForDirective() argument
1030 PrintOMPExecutableDirective(Node); in VisitOMPDistributeParallelForDirective()
1034 OMPDistributeParallelForSimdDirective *Node) { in VisitOMPDistributeParallelForSimdDirective() argument
1036 PrintOMPExecutableDirective(Node); in VisitOMPDistributeParallelForSimdDirective()
1040 OMPDistributeSimdDirective *Node) { in VisitOMPDistributeSimdDirective() argument
1042 PrintOMPExecutableDirective(Node); in VisitOMPDistributeSimdDirective()
1046 OMPTargetParallelForSimdDirective *Node) { in VisitOMPTargetParallelForSimdDirective() argument
1048 PrintOMPExecutableDirective(Node); in VisitOMPTargetParallelForSimdDirective()
1051 void StmtPrinter::VisitOMPTargetSimdDirective(OMPTargetSimdDirective *Node) { in VisitOMPTargetSimdDirective() argument
1053 PrintOMPExecutableDirective(Node); in VisitOMPTargetSimdDirective()
1057 OMPTeamsDistributeDirective *Node) { in VisitOMPTeamsDistributeDirective() argument
1059 PrintOMPExecutableDirective(Node); in VisitOMPTeamsDistributeDirective()
1063 OMPTeamsDistributeSimdDirective *Node) { in VisitOMPTeamsDistributeSimdDirective() argument
1065 PrintOMPExecutableDirective(Node); in VisitOMPTeamsDistributeSimdDirective()
1069 OMPTeamsDistributeParallelForSimdDirective *Node) { in VisitOMPTeamsDistributeParallelForSimdDirective() argument
1071 PrintOMPExecutableDirective(Node); in VisitOMPTeamsDistributeParallelForSimdDirective()
1075 OMPTeamsDistributeParallelForDirective *Node) { in VisitOMPTeamsDistributeParallelForDirective() argument
1077 PrintOMPExecutableDirective(Node); in VisitOMPTeamsDistributeParallelForDirective()
1080 void StmtPrinter::VisitOMPTargetTeamsDirective(OMPTargetTeamsDirective *Node) { in VisitOMPTargetTeamsDirective() argument
1082 PrintOMPExecutableDirective(Node); in VisitOMPTargetTeamsDirective()
1086 OMPTargetTeamsDistributeDirective *Node) { in VisitOMPTargetTeamsDistributeDirective() argument
1088 PrintOMPExecutableDirective(Node); in VisitOMPTargetTeamsDistributeDirective()
1092 OMPTargetTeamsDistributeParallelForDirective *Node) { in VisitOMPTargetTeamsDistributeParallelForDirective() argument
1094 PrintOMPExecutableDirective(Node); in VisitOMPTargetTeamsDistributeParallelForDirective()
1098 OMPTargetTeamsDistributeParallelForSimdDirective *Node) { in VisitOMPTargetTeamsDistributeParallelForSimdDirective() argument
1100 PrintOMPExecutableDirective(Node); in VisitOMPTargetTeamsDistributeParallelForSimdDirective()
1104 OMPTargetTeamsDistributeSimdDirective *Node) { in VisitOMPTargetTeamsDistributeSimdDirective() argument
1106 PrintOMPExecutableDirective(Node); in VisitOMPTargetTeamsDistributeSimdDirective()
1109 void StmtPrinter::VisitOMPInteropDirective(OMPInteropDirective *Node) { in VisitOMPInteropDirective() argument
1111 PrintOMPExecutableDirective(Node); in VisitOMPInteropDirective()
1114 void StmtPrinter::VisitOMPDispatchDirective(OMPDispatchDirective *Node) { in VisitOMPDispatchDirective() argument
1116 PrintOMPExecutableDirective(Node); in VisitOMPDispatchDirective()
1119 void StmtPrinter::VisitOMPMaskedDirective(OMPMaskedDirective *Node) { in VisitOMPMaskedDirective() argument
1121 PrintOMPExecutableDirective(Node); in VisitOMPMaskedDirective()
1124 void StmtPrinter::VisitOMPGenericLoopDirective(OMPGenericLoopDirective *Node) { in VisitOMPGenericLoopDirective() argument
1126 PrintOMPExecutableDirective(Node); in VisitOMPGenericLoopDirective()
1130 OMPTeamsGenericLoopDirective *Node) { in VisitOMPTeamsGenericLoopDirective() argument
1132 PrintOMPExecutableDirective(Node); in VisitOMPTeamsGenericLoopDirective()
1136 OMPTargetTeamsGenericLoopDirective *Node) { in VisitOMPTargetTeamsGenericLoopDirective() argument
1138 PrintOMPExecutableDirective(Node); in VisitOMPTargetTeamsGenericLoopDirective()
1142 OMPParallelGenericLoopDirective *Node) { in VisitOMPParallelGenericLoopDirective() argument
1144 PrintOMPExecutableDirective(Node); in VisitOMPParallelGenericLoopDirective()
1148 OMPTargetParallelGenericLoopDirective *Node) { in VisitOMPTargetParallelGenericLoopDirective() argument
1150 PrintOMPExecutableDirective(Node); in VisitOMPTargetParallelGenericLoopDirective()
1186 void StmtPrinter::VisitSourceLocExpr(SourceLocExpr *Node) { in VisitSourceLocExpr() argument
1187 OS << Node->getBuiltinStr() << "()"; in VisitSourceLocExpr()
1190 void StmtPrinter::VisitEmbedExpr(EmbedExpr *Node) { in VisitEmbedExpr() argument
1194 void StmtPrinter::VisitConstantExpr(ConstantExpr *Node) { in VisitConstantExpr() argument
1195 PrintExpr(Node->getSubExpr()); in VisitConstantExpr()
1198 void StmtPrinter::VisitDeclRefExpr(DeclRefExpr *Node) { in VisitDeclRefExpr() argument
1199 if (const auto *OCED = dyn_cast<OMPCapturedExprDecl>(Node->getDecl())) { in VisitDeclRefExpr()
1203 if (const auto *TPOD = dyn_cast<TemplateParamObjectDecl>(Node->getDecl())) { in VisitDeclRefExpr()
1207 if (NestedNameSpecifier *Qualifier = Node->getQualifier()) in VisitDeclRefExpr()
1209 if (Node->hasTemplateKeyword()) in VisitDeclRefExpr()
1212 isa<ParmVarDecl, NonTypeTemplateParmDecl>(Node->getDecl()) && in VisitDeclRefExpr()
1213 Node->getDecl()->getIdentifier()) in VisitDeclRefExpr()
1214 OS << Node->getDecl()->getIdentifier()->deuglifiedName(); in VisitDeclRefExpr()
1216 Node->getNameInfo().printName(OS, Policy); in VisitDeclRefExpr()
1217 if (Node->hasExplicitTemplateArgs()) { in VisitDeclRefExpr()
1219 if (!Node->hadMultipleCandidates()) in VisitDeclRefExpr()
1220 if (auto *TD = dyn_cast<TemplateDecl>(Node->getDecl())) in VisitDeclRefExpr()
1222 printTemplateArgumentList(OS, Node->template_arguments(), Policy, TPL); in VisitDeclRefExpr()
1227 DependentScopeDeclRefExpr *Node) { in VisitDependentScopeDeclRefExpr() argument
1228 if (NestedNameSpecifier *Qualifier = Node->getQualifier()) in VisitDependentScopeDeclRefExpr()
1230 if (Node->hasTemplateKeyword()) in VisitDependentScopeDeclRefExpr()
1232 OS << Node->getNameInfo(); in VisitDependentScopeDeclRefExpr()
1233 if (Node->hasExplicitTemplateArgs()) in VisitDependentScopeDeclRefExpr()
1234 printTemplateArgumentList(OS, Node->template_arguments(), Policy); in VisitDependentScopeDeclRefExpr()
1237 void StmtPrinter::VisitUnresolvedLookupExpr(UnresolvedLookupExpr *Node) { in VisitUnresolvedLookupExpr() argument
1238 if (Node->getQualifier()) in VisitUnresolvedLookupExpr()
1239 Node->getQualifier()->print(OS, Policy); in VisitUnresolvedLookupExpr()
1240 if (Node->hasTemplateKeyword()) in VisitUnresolvedLookupExpr()
1242 OS << Node->getNameInfo(); in VisitUnresolvedLookupExpr()
1243 if (Node->hasExplicitTemplateArgs()) in VisitUnresolvedLookupExpr()
1244 printTemplateArgumentList(OS, Node->template_arguments(), Policy); in VisitUnresolvedLookupExpr()
1258 void StmtPrinter::VisitObjCIvarRefExpr(ObjCIvarRefExpr *Node) { in VisitObjCIvarRefExpr() argument
1259 if (Node->getBase()) { in VisitObjCIvarRefExpr()
1261 !isImplicitSelf(Node->getBase()->IgnoreImpCasts())) { in VisitObjCIvarRefExpr()
1262 PrintExpr(Node->getBase()); in VisitObjCIvarRefExpr()
1263 OS << (Node->isArrow() ? "->" : "."); in VisitObjCIvarRefExpr()
1266 OS << *Node->getDecl(); in VisitObjCIvarRefExpr()
1269 void StmtPrinter::VisitObjCPropertyRefExpr(ObjCPropertyRefExpr *Node) { in VisitObjCPropertyRefExpr() argument
1270 if (Node->isSuperReceiver()) in VisitObjCPropertyRefExpr()
1272 else if (Node->isObjectReceiver() && Node->getBase()) { in VisitObjCPropertyRefExpr()
1273 PrintExpr(Node->getBase()); in VisitObjCPropertyRefExpr()
1275 } else if (Node->isClassReceiver() && Node->getClassReceiver()) { in VisitObjCPropertyRefExpr()
1276 OS << Node->getClassReceiver()->getName() << "."; in VisitObjCPropertyRefExpr()
1279 if (Node->isImplicitProperty()) { in VisitObjCPropertyRefExpr()
1280 if (const auto *Getter = Node->getImplicitPropertyGetter()) in VisitObjCPropertyRefExpr()
1284 Node->getImplicitPropertySetter()->getSelector()); in VisitObjCPropertyRefExpr()
1286 OS << Node->getExplicitProperty()->getName(); in VisitObjCPropertyRefExpr()
1289 void StmtPrinter::VisitObjCSubscriptRefExpr(ObjCSubscriptRefExpr *Node) { in VisitObjCSubscriptRefExpr() argument
1290 PrintExpr(Node->getBaseExpr()); in VisitObjCSubscriptRefExpr()
1292 PrintExpr(Node->getKeyExpr()); in VisitObjCSubscriptRefExpr()
1297 SYCLUniqueStableNameExpr *Node) { in VisitSYCLUniqueStableNameExpr() argument
1299 Node->getTypeSourceInfo()->getType().print(OS, Policy); in VisitSYCLUniqueStableNameExpr()
1303 void StmtPrinter::VisitPredefinedExpr(PredefinedExpr *Node) { in VisitPredefinedExpr() argument
1304 OS << PredefinedExpr::getIdentKindName(Node->getIdentKind()); in VisitPredefinedExpr()
1307 void StmtPrinter::VisitCharacterLiteral(CharacterLiteral *Node) { in VisitCharacterLiteral() argument
1308 CharacterLiteral::print(Node->getValue(), Node->getKind(), OS); in VisitCharacterLiteral()
1328 void StmtPrinter::VisitIntegerLiteral(IntegerLiteral *Node) { in VisitIntegerLiteral() argument
1329 if (Policy.ConstantsAsWritten && printExprAsWritten(OS, Node, Context)) in VisitIntegerLiteral()
1331 bool isSigned = Node->getType()->isSignedIntegerType(); in VisitIntegerLiteral()
1332 OS << toString(Node->getValue(), 10, isSigned); in VisitIntegerLiteral()
1334 if (isa<BitIntType>(Node->getType())) { in VisitIntegerLiteral()
1340 switch (Node->getType()->castAs<BuiltinType>()->getKind()) { in VisitIntegerLiteral()
1364 void StmtPrinter::VisitFixedPointLiteral(FixedPointLiteral *Node) { in VisitFixedPointLiteral() argument
1365 if (Policy.ConstantsAsWritten && printExprAsWritten(OS, Node, Context)) in VisitFixedPointLiteral()
1367 OS << Node->getValueAsString(/*Radix=*/10); in VisitFixedPointLiteral()
1369 switch (Node->getType()->castAs<BuiltinType>()->getKind()) { in VisitFixedPointLiteral()
1386 static void PrintFloatingLiteral(raw_ostream &OS, FloatingLiteral *Node, in PrintFloatingLiteral() argument
1389 Node->getValue().toString(Str); in PrintFloatingLiteral()
1398 switch (Node->getType()->castAs<BuiltinType>()->getKind()) { in PrintFloatingLiteral()
1410 void StmtPrinter::VisitFloatingLiteral(FloatingLiteral *Node) { in VisitFloatingLiteral() argument
1411 if (Policy.ConstantsAsWritten && printExprAsWritten(OS, Node, Context)) in VisitFloatingLiteral()
1413 PrintFloatingLiteral(OS, Node, /*PrintSuffix=*/true); in VisitFloatingLiteral()
1416 void StmtPrinter::VisitImaginaryLiteral(ImaginaryLiteral *Node) { in VisitImaginaryLiteral() argument
1417 PrintExpr(Node->getSubExpr()); in VisitImaginaryLiteral()
1425 void StmtPrinter::VisitParenExpr(ParenExpr *Node) { in VisitParenExpr() argument
1427 PrintExpr(Node->getSubExpr()); in VisitParenExpr()
1431 void StmtPrinter::VisitUnaryOperator(UnaryOperator *Node) { in VisitUnaryOperator() argument
1432 if (!Node->isPostfix()) { in VisitUnaryOperator()
1433 OS << UnaryOperator::getOpcodeStr(Node->getOpcode()); in VisitUnaryOperator()
1437 switch (Node->getOpcode()) { in VisitUnaryOperator()
1446 if (isa<UnaryOperator>(Node->getSubExpr())) in VisitUnaryOperator()
1451 PrintExpr(Node->getSubExpr()); in VisitUnaryOperator()
1453 if (Node->isPostfix()) in VisitUnaryOperator()
1454 OS << UnaryOperator::getOpcodeStr(Node->getOpcode()); in VisitUnaryOperator()
1457 void StmtPrinter::VisitOffsetOfExpr(OffsetOfExpr *Node) { in VisitOffsetOfExpr() argument
1459 Node->getTypeSourceInfo()->getType().print(OS, Policy); in VisitOffsetOfExpr()
1462 for (unsigned i = 0, n = Node->getNumComponents(); i < n; ++i) { in VisitOffsetOfExpr()
1463 OffsetOfNode ON = Node->getComponent(i); in VisitOffsetOfExpr()
1467 PrintExpr(Node->getIndexExpr(ON.getArrayExprIndex())); in VisitOffsetOfExpr()
1492 UnaryExprOrTypeTraitExpr *Node) { in VisitUnaryExprOrTypeTraitExpr() argument
1493 const char *Spelling = getTraitSpelling(Node->getKind()); in VisitUnaryExprOrTypeTraitExpr()
1494 if (Node->getKind() == UETT_AlignOf) { in VisitUnaryExprOrTypeTraitExpr()
1505 if (Node->isArgumentType()) { in VisitUnaryExprOrTypeTraitExpr()
1507 Node->getArgumentType().print(OS, Policy); in VisitUnaryExprOrTypeTraitExpr()
1511 PrintExpr(Node->getArgumentExpr()); in VisitUnaryExprOrTypeTraitExpr()
1515 void StmtPrinter::VisitGenericSelectionExpr(GenericSelectionExpr *Node) { in VisitGenericSelectionExpr() argument
1517 if (Node->isExprPredicate()) in VisitGenericSelectionExpr()
1518 PrintExpr(Node->getControllingExpr()); in VisitGenericSelectionExpr()
1520 Node->getControllingType()->getType().print(OS, Policy); in VisitGenericSelectionExpr()
1522 for (const GenericSelectionExpr::Association &Assoc : Node->associations()) { in VisitGenericSelectionExpr()
1535 void StmtPrinter::VisitArraySubscriptExpr(ArraySubscriptExpr *Node) { in VisitArraySubscriptExpr() argument
1536 PrintExpr(Node->getLHS()); in VisitArraySubscriptExpr()
1538 PrintExpr(Node->getRHS()); in VisitArraySubscriptExpr()
1542 void StmtPrinter::VisitMatrixSubscriptExpr(MatrixSubscriptExpr *Node) { in VisitMatrixSubscriptExpr() argument
1543 PrintExpr(Node->getBase()); in VisitMatrixSubscriptExpr()
1545 PrintExpr(Node->getRowIdx()); in VisitMatrixSubscriptExpr()
1548 PrintExpr(Node->getColumnIdx()); in VisitMatrixSubscriptExpr()
1552 void StmtPrinter::VisitArraySectionExpr(ArraySectionExpr *Node) { in VisitArraySectionExpr() argument
1553 PrintExpr(Node->getBase()); in VisitArraySectionExpr()
1555 if (Node->getLowerBound()) in VisitArraySectionExpr()
1556 PrintExpr(Node->getLowerBound()); in VisitArraySectionExpr()
1557 if (Node->getColonLocFirst().isValid()) { in VisitArraySectionExpr()
1559 if (Node->getLength()) in VisitArraySectionExpr()
1560 PrintExpr(Node->getLength()); in VisitArraySectionExpr()
1562 if (Node->isOMPArraySection() && Node->getColonLocSecond().isValid()) { in VisitArraySectionExpr()
1564 if (Node->getStride()) in VisitArraySectionExpr()
1565 PrintExpr(Node->getStride()); in VisitArraySectionExpr()
1570 void StmtPrinter::VisitOMPArrayShapingExpr(OMPArrayShapingExpr *Node) { in VisitOMPArrayShapingExpr() argument
1572 for (Expr *E : Node->getDimensions()) { in VisitOMPArrayShapingExpr()
1578 PrintExpr(Node->getBase()); in VisitOMPArrayShapingExpr()
1581 void StmtPrinter::VisitOMPIteratorExpr(OMPIteratorExpr *Node) { in VisitOMPIteratorExpr() argument
1583 for (unsigned I = 0, E = Node->numOfIterators(); I < E; ++I) { in VisitOMPIteratorExpr()
1584 auto *VD = cast<ValueDecl>(Node->getIteratorDecl(I)); in VisitOMPIteratorExpr()
1586 const OMPIteratorExpr::IteratorRange Range = Node->getIteratorRange(I); in VisitOMPIteratorExpr()
1626 void StmtPrinter::VisitMemberExpr(MemberExpr *Node) { in VisitMemberExpr() argument
1627 if (!Policy.SuppressImplicitBase || !isImplicitThis(Node->getBase())) { in VisitMemberExpr()
1628 PrintExpr(Node->getBase()); in VisitMemberExpr()
1630 auto *ParentMember = dyn_cast<MemberExpr>(Node->getBase()); in VisitMemberExpr()
1636 OS << (Node->isArrow() ? "->" : "."); in VisitMemberExpr()
1639 if (auto *FD = dyn_cast<FieldDecl>(Node->getMemberDecl())) in VisitMemberExpr()
1643 if (NestedNameSpecifier *Qualifier = Node->getQualifier()) in VisitMemberExpr()
1645 if (Node->hasTemplateKeyword()) in VisitMemberExpr()
1647 OS << Node->getMemberNameInfo(); in VisitMemberExpr()
1649 if (auto *FD = dyn_cast<FunctionDecl>(Node->getMemberDecl())) { in VisitMemberExpr()
1650 if (!Node->hadMultipleCandidates()) in VisitMemberExpr()
1654 dyn_cast<VarTemplateSpecializationDecl>(Node->getMemberDecl())) in VisitMemberExpr()
1656 if (Node->hasExplicitTemplateArgs()) in VisitMemberExpr()
1657 printTemplateArgumentList(OS, Node->template_arguments(), Policy, TPL); in VisitMemberExpr()
1660 void StmtPrinter::VisitObjCIsaExpr(ObjCIsaExpr *Node) { in VisitObjCIsaExpr() argument
1661 PrintExpr(Node->getBase()); in VisitObjCIsaExpr()
1662 OS << (Node->isArrow() ? "->isa" : ".isa"); in VisitObjCIsaExpr()
1665 void StmtPrinter::VisitExtVectorElementExpr(ExtVectorElementExpr *Node) { in VisitExtVectorElementExpr() argument
1666 PrintExpr(Node->getBase()); in VisitExtVectorElementExpr()
1668 OS << Node->getAccessor().getName(); in VisitExtVectorElementExpr()
1671 void StmtPrinter::VisitCStyleCastExpr(CStyleCastExpr *Node) { in VisitCStyleCastExpr() argument
1673 Node->getTypeAsWritten().print(OS, Policy); in VisitCStyleCastExpr()
1675 PrintExpr(Node->getSubExpr()); in VisitCStyleCastExpr()
1678 void StmtPrinter::VisitCompoundLiteralExpr(CompoundLiteralExpr *Node) { in VisitCompoundLiteralExpr() argument
1680 Node->getType().print(OS, Policy); in VisitCompoundLiteralExpr()
1682 PrintExpr(Node->getInitializer()); in VisitCompoundLiteralExpr()
1685 void StmtPrinter::VisitImplicitCastExpr(ImplicitCastExpr *Node) { in VisitImplicitCastExpr() argument
1687 PrintExpr(Node->getSubExpr()); in VisitImplicitCastExpr()
1690 void StmtPrinter::VisitBinaryOperator(BinaryOperator *Node) { in VisitBinaryOperator() argument
1691 PrintExpr(Node->getLHS()); in VisitBinaryOperator()
1692 OS << " " << BinaryOperator::getOpcodeStr(Node->getOpcode()) << " "; in VisitBinaryOperator()
1693 PrintExpr(Node->getRHS()); in VisitBinaryOperator()
1696 void StmtPrinter::VisitCompoundAssignOperator(CompoundAssignOperator *Node) { in VisitCompoundAssignOperator() argument
1697 PrintExpr(Node->getLHS()); in VisitCompoundAssignOperator()
1698 OS << " " << BinaryOperator::getOpcodeStr(Node->getOpcode()) << " "; in VisitCompoundAssignOperator()
1699 PrintExpr(Node->getRHS()); in VisitCompoundAssignOperator()
1702 void StmtPrinter::VisitConditionalOperator(ConditionalOperator *Node) { in VisitConditionalOperator() argument
1703 PrintExpr(Node->getCond()); in VisitConditionalOperator()
1705 PrintExpr(Node->getLHS()); in VisitConditionalOperator()
1707 PrintExpr(Node->getRHS()); in VisitConditionalOperator()
1713 StmtPrinter::VisitBinaryConditionalOperator(BinaryConditionalOperator *Node) { in VisitBinaryConditionalOperator() argument
1714 PrintExpr(Node->getCommon()); in VisitBinaryConditionalOperator()
1716 PrintExpr(Node->getFalseExpr()); in VisitBinaryConditionalOperator()
1719 void StmtPrinter::VisitAddrLabelExpr(AddrLabelExpr *Node) { in VisitAddrLabelExpr() argument
1720 OS << "&&" << Node->getLabel()->getName(); in VisitAddrLabelExpr()
1729 void StmtPrinter::VisitChooseExpr(ChooseExpr *Node) { in VisitChooseExpr() argument
1731 PrintExpr(Node->getCond()); in VisitChooseExpr()
1733 PrintExpr(Node->getLHS()); in VisitChooseExpr()
1735 PrintExpr(Node->getRHS()); in VisitChooseExpr()
1743 void StmtPrinter::VisitShuffleVectorExpr(ShuffleVectorExpr *Node) { in VisitShuffleVectorExpr() argument
1745 for (unsigned i = 0, e = Node->getNumSubExprs(); i != e; ++i) { in VisitShuffleVectorExpr()
1747 PrintExpr(Node->getExpr(i)); in VisitShuffleVectorExpr()
1752 void StmtPrinter::VisitConvertVectorExpr(ConvertVectorExpr *Node) { in VisitConvertVectorExpr() argument
1754 PrintExpr(Node->getSrcExpr()); in VisitConvertVectorExpr()
1756 Node->getType().print(OS, Policy); in VisitConvertVectorExpr()
1760 void StmtPrinter::VisitInitListExpr(InitListExpr* Node) { in VisitInitListExpr() argument
1761 if (Node->getSyntacticForm()) { in VisitInitListExpr()
1762 Visit(Node->getSyntacticForm()); in VisitInitListExpr()
1767 for (unsigned i = 0, e = Node->getNumInits(); i != e; ++i) { in VisitInitListExpr()
1769 if (Node->getInit(i)) in VisitInitListExpr()
1770 PrintExpr(Node->getInit(i)); in VisitInitListExpr()
1777 void StmtPrinter::VisitArrayInitLoopExpr(ArrayInitLoopExpr *Node) { in VisitArrayInitLoopExpr() argument
1781 PrintExpr(Node->getSubExpr()); in VisitArrayInitLoopExpr()
1785 void StmtPrinter::VisitArrayInitIndexExpr(ArrayInitIndexExpr *Node) { in VisitArrayInitIndexExpr() argument
1789 void StmtPrinter::VisitParenListExpr(ParenListExpr* Node) { in VisitParenListExpr() argument
1791 for (unsigned i = 0, e = Node->getNumExprs(); i != e; ++i) { in VisitParenListExpr()
1793 PrintExpr(Node->getExpr(i)); in VisitParenListExpr()
1798 void StmtPrinter::VisitDesignatedInitExpr(DesignatedInitExpr *Node) { in VisitDesignatedInitExpr() argument
1800 for (const DesignatedInitExpr::Designator &D : Node->designators()) { in VisitDesignatedInitExpr()
1813 PrintExpr(Node->getArrayIndex(D)); in VisitDesignatedInitExpr()
1815 PrintExpr(Node->getArrayRangeStart(D)); in VisitDesignatedInitExpr()
1817 PrintExpr(Node->getArrayRangeEnd(D)); in VisitDesignatedInitExpr()
1827 PrintExpr(Node->getInit()); in VisitDesignatedInitExpr()
1831 DesignatedInitUpdateExpr *Node) { in VisitDesignatedInitUpdateExpr() argument
1834 PrintExpr(Node->getBase()); in VisitDesignatedInitUpdateExpr()
1838 PrintExpr(Node->getUpdater()); in VisitDesignatedInitUpdateExpr()
1842 void StmtPrinter::VisitNoInitExpr(NoInitExpr *Node) { in VisitNoInitExpr() argument
1846 void StmtPrinter::VisitImplicitValueInitExpr(ImplicitValueInitExpr *Node) { in VisitImplicitValueInitExpr() argument
1847 if (Node->getType()->getAsCXXRecordDecl()) { in VisitImplicitValueInitExpr()
1849 Node->getType().print(OS, Policy); in VisitImplicitValueInitExpr()
1853 Node->getType().print(OS, Policy); in VisitImplicitValueInitExpr()
1855 if (Node->getType()->isRecordType()) in VisitImplicitValueInitExpr()
1862 void StmtPrinter::VisitVAArgExpr(VAArgExpr *Node) { in VisitVAArgExpr() argument
1864 PrintExpr(Node->getSubExpr()); in VisitVAArgExpr()
1866 Node->getType().print(OS, Policy); in VisitVAArgExpr()
1870 void StmtPrinter::VisitPseudoObjectExpr(PseudoObjectExpr *Node) { in VisitPseudoObjectExpr() argument
1871 PrintExpr(Node->getSyntacticForm()); in VisitPseudoObjectExpr()
1874 void StmtPrinter::VisitAtomicExpr(AtomicExpr *Node) { in VisitAtomicExpr() argument
1876 switch (Node->getOp()) { in VisitAtomicExpr()
1887 PrintExpr(Node->getPtr()); in VisitAtomicExpr()
1888 if (Node->getOp() != AtomicExpr::AO__c11_atomic_load && in VisitAtomicExpr()
1889 Node->getOp() != AtomicExpr::AO__atomic_load_n && in VisitAtomicExpr()
1890 Node->getOp() != AtomicExpr::AO__scoped_atomic_load_n && in VisitAtomicExpr()
1891 Node->getOp() != AtomicExpr::AO__opencl_atomic_load && in VisitAtomicExpr()
1892 Node->getOp() != AtomicExpr::AO__hip_atomic_load) { in VisitAtomicExpr()
1894 PrintExpr(Node->getVal1()); in VisitAtomicExpr()
1896 if (Node->getOp() == AtomicExpr::AO__atomic_exchange || in VisitAtomicExpr()
1897 Node->isCmpXChg()) { in VisitAtomicExpr()
1899 PrintExpr(Node->getVal2()); in VisitAtomicExpr()
1901 if (Node->getOp() == AtomicExpr::AO__atomic_compare_exchange || in VisitAtomicExpr()
1902 Node->getOp() == AtomicExpr::AO__atomic_compare_exchange_n) { in VisitAtomicExpr()
1904 PrintExpr(Node->getWeak()); in VisitAtomicExpr()
1906 if (Node->getOp() != AtomicExpr::AO__c11_atomic_init && in VisitAtomicExpr()
1907 Node->getOp() != AtomicExpr::AO__opencl_atomic_init) { in VisitAtomicExpr()
1909 PrintExpr(Node->getOrder()); in VisitAtomicExpr()
1911 if (Node->isCmpXChg()) { in VisitAtomicExpr()
1913 PrintExpr(Node->getOrderFail()); in VisitAtomicExpr()
1919 void StmtPrinter::VisitCXXOperatorCallExpr(CXXOperatorCallExpr *Node) { in VisitCXXOperatorCallExpr() argument
1920 OverloadedOperatorKind Kind = Node->getOperator(); in VisitCXXOperatorCallExpr()
1922 if (Node->getNumArgs() == 1) { in VisitCXXOperatorCallExpr()
1924 PrintExpr(Node->getArg(0)); in VisitCXXOperatorCallExpr()
1926 PrintExpr(Node->getArg(0)); in VisitCXXOperatorCallExpr()
1930 PrintExpr(Node->getArg(0)); in VisitCXXOperatorCallExpr()
1932 PrintExpr(Node->getArg(0)); in VisitCXXOperatorCallExpr()
1934 for (unsigned ArgIdx = 1; ArgIdx < Node->getNumArgs(); ++ArgIdx) { in VisitCXXOperatorCallExpr()
1937 if (!isa<CXXDefaultArgExpr>(Node->getArg(ArgIdx))) in VisitCXXOperatorCallExpr()
1938 PrintExpr(Node->getArg(ArgIdx)); in VisitCXXOperatorCallExpr()
1941 } else if (Node->getNumArgs() == 1) { in VisitCXXOperatorCallExpr()
1943 PrintExpr(Node->getArg(0)); in VisitCXXOperatorCallExpr()
1944 } else if (Node->getNumArgs() == 2) { in VisitCXXOperatorCallExpr()
1945 PrintExpr(Node->getArg(0)); in VisitCXXOperatorCallExpr()
1947 PrintExpr(Node->getArg(1)); in VisitCXXOperatorCallExpr()
1953 void StmtPrinter::VisitCXXMemberCallExpr(CXXMemberCallExpr *Node) { in VisitCXXMemberCallExpr() argument
1955 CXXMethodDecl *MD = Node->getMethodDecl(); in VisitCXXMemberCallExpr()
1957 PrintExpr(Node->getImplicitObjectArgument()); in VisitCXXMemberCallExpr()
1960 VisitCallExpr(cast<CallExpr>(Node)); in VisitCXXMemberCallExpr()
1963 void StmtPrinter::VisitCUDAKernelCallExpr(CUDAKernelCallExpr *Node) { in VisitCUDAKernelCallExpr() argument
1964 PrintExpr(Node->getCallee()); in VisitCUDAKernelCallExpr()
1966 PrintCallArgs(Node->getConfig()); in VisitCUDAKernelCallExpr()
1968 PrintCallArgs(Node); in VisitCUDAKernelCallExpr()
1973 CXXRewrittenBinaryOperator *Node) { in VisitCXXRewrittenBinaryOperator() argument
1975 Node->getDecomposedForm(); in VisitCXXRewrittenBinaryOperator()
1981 void StmtPrinter::VisitCXXNamedCastExpr(CXXNamedCastExpr *Node) { in VisitCXXNamedCastExpr() argument
1982 OS << Node->getCastName() << '<'; in VisitCXXNamedCastExpr()
1983 Node->getTypeAsWritten().print(OS, Policy); in VisitCXXNamedCastExpr()
1985 PrintExpr(Node->getSubExpr()); in VisitCXXNamedCastExpr()
1989 void StmtPrinter::VisitCXXStaticCastExpr(CXXStaticCastExpr *Node) { in VisitCXXStaticCastExpr() argument
1990 VisitCXXNamedCastExpr(Node); in VisitCXXStaticCastExpr()
1993 void StmtPrinter::VisitCXXDynamicCastExpr(CXXDynamicCastExpr *Node) { in VisitCXXDynamicCastExpr() argument
1994 VisitCXXNamedCastExpr(Node); in VisitCXXDynamicCastExpr()
1997 void StmtPrinter::VisitCXXReinterpretCastExpr(CXXReinterpretCastExpr *Node) { in VisitCXXReinterpretCastExpr() argument
1998 VisitCXXNamedCastExpr(Node); in VisitCXXReinterpretCastExpr()
2001 void StmtPrinter::VisitCXXConstCastExpr(CXXConstCastExpr *Node) { in VisitCXXConstCastExpr() argument
2002 VisitCXXNamedCastExpr(Node); in VisitCXXConstCastExpr()
2005 void StmtPrinter::VisitBuiltinBitCastExpr(BuiltinBitCastExpr *Node) { in VisitBuiltinBitCastExpr() argument
2007 Node->getTypeInfoAsWritten()->getType().print(OS, Policy); in VisitBuiltinBitCastExpr()
2009 PrintExpr(Node->getSubExpr()); in VisitBuiltinBitCastExpr()
2013 void StmtPrinter::VisitCXXAddrspaceCastExpr(CXXAddrspaceCastExpr *Node) { in VisitCXXAddrspaceCastExpr() argument
2014 VisitCXXNamedCastExpr(Node); in VisitCXXAddrspaceCastExpr()
2017 void StmtPrinter::VisitCXXTypeidExpr(CXXTypeidExpr *Node) { in VisitCXXTypeidExpr() argument
2019 if (Node->isTypeOperand()) { in VisitCXXTypeidExpr()
2020 Node->getTypeOperandSourceInfo()->getType().print(OS, Policy); in VisitCXXTypeidExpr()
2022 PrintExpr(Node->getExprOperand()); in VisitCXXTypeidExpr()
2027 void StmtPrinter::VisitCXXUuidofExpr(CXXUuidofExpr *Node) { in VisitCXXUuidofExpr() argument
2029 if (Node->isTypeOperand()) { in VisitCXXUuidofExpr()
2030 Node->getTypeOperandSourceInfo()->getType().print(OS, Policy); in VisitCXXUuidofExpr()
2032 PrintExpr(Node->getExprOperand()); in VisitCXXUuidofExpr()
2037 void StmtPrinter::VisitMSPropertyRefExpr(MSPropertyRefExpr *Node) { in VisitMSPropertyRefExpr() argument
2038 PrintExpr(Node->getBaseExpr()); in VisitMSPropertyRefExpr()
2039 if (Node->isArrow()) in VisitMSPropertyRefExpr()
2044 Node->getQualifierLoc().getNestedNameSpecifier()) in VisitMSPropertyRefExpr()
2046 OS << Node->getPropertyDecl()->getDeclName(); in VisitMSPropertyRefExpr()
2049 void StmtPrinter::VisitMSPropertySubscriptExpr(MSPropertySubscriptExpr *Node) { in VisitMSPropertySubscriptExpr() argument
2050 PrintExpr(Node->getBase()); in VisitMSPropertySubscriptExpr()
2052 PrintExpr(Node->getIdx()); in VisitMSPropertySubscriptExpr()
2056 void StmtPrinter::VisitUserDefinedLiteral(UserDefinedLiteral *Node) { in VisitUserDefinedLiteral() argument
2057 switch (Node->getLiteralOperatorKind()) { in VisitUserDefinedLiteral()
2059 OS << cast<StringLiteral>(Node->getArg(0)->IgnoreImpCasts())->getString(); in VisitUserDefinedLiteral()
2062 const auto *DRE = cast<DeclRefExpr>(Node->getCallee()->IgnoreImpCasts()); in VisitUserDefinedLiteral()
2072 OS << "operator\"\"" << Node->getUDSuffix()->getName(); in VisitUserDefinedLiteral()
2087 const auto *Int = cast<IntegerLiteral>(Node->getCookedLiteral()); in VisitUserDefinedLiteral()
2093 auto *Float = cast<FloatingLiteral>(Node->getCookedLiteral()); in VisitUserDefinedLiteral()
2099 PrintExpr(Node->getCookedLiteral()); in VisitUserDefinedLiteral()
2102 OS << Node->getUDSuffix()->getName(); in VisitUserDefinedLiteral()
2105 void StmtPrinter::VisitCXXBoolLiteralExpr(CXXBoolLiteralExpr *Node) { in VisitCXXBoolLiteralExpr() argument
2106 OS << (Node->getValue() ? "true" : "false"); in VisitCXXBoolLiteralExpr()
2109 void StmtPrinter::VisitCXXNullPtrLiteralExpr(CXXNullPtrLiteralExpr *Node) { in VisitCXXNullPtrLiteralExpr() argument
2113 void StmtPrinter::VisitCXXThisExpr(CXXThisExpr *Node) { in VisitCXXThisExpr() argument
2117 void StmtPrinter::VisitCXXThrowExpr(CXXThrowExpr *Node) { in VisitCXXThrowExpr() argument
2118 if (!Node->getSubExpr()) in VisitCXXThrowExpr()
2122 PrintExpr(Node->getSubExpr()); in VisitCXXThrowExpr()
2126 void StmtPrinter::VisitCXXDefaultArgExpr(CXXDefaultArgExpr *Node) { in VisitCXXDefaultArgExpr() argument
2130 void StmtPrinter::VisitCXXDefaultInitExpr(CXXDefaultInitExpr *Node) { in VisitCXXDefaultInitExpr() argument
2134 void StmtPrinter::VisitCXXFunctionalCastExpr(CXXFunctionalCastExpr *Node) { in VisitCXXFunctionalCastExpr() argument
2135 auto TargetType = Node->getType(); in VisitCXXFunctionalCastExpr()
2147 if (!Node->isListInitialization()) in VisitCXXFunctionalCastExpr()
2149 PrintExpr(Node->getSubExpr()); in VisitCXXFunctionalCastExpr()
2150 if (!Node->isListInitialization()) in VisitCXXFunctionalCastExpr()
2154 void StmtPrinter::VisitCXXBindTemporaryExpr(CXXBindTemporaryExpr *Node) { in VisitCXXBindTemporaryExpr() argument
2155 PrintExpr(Node->getSubExpr()); in VisitCXXBindTemporaryExpr()
2158 void StmtPrinter::VisitCXXTemporaryObjectExpr(CXXTemporaryObjectExpr *Node) { in VisitCXXTemporaryObjectExpr() argument
2159 Node->getType().print(OS, Policy); in VisitCXXTemporaryObjectExpr()
2160 if (Node->isStdInitListInitialization()) in VisitCXXTemporaryObjectExpr()
2162 else if (Node->isListInitialization()) in VisitCXXTemporaryObjectExpr()
2166 for (CXXTemporaryObjectExpr::arg_iterator Arg = Node->arg_begin(), in VisitCXXTemporaryObjectExpr()
2167 ArgEnd = Node->arg_end(); in VisitCXXTemporaryObjectExpr()
2171 if (Arg != Node->arg_begin()) in VisitCXXTemporaryObjectExpr()
2175 if (Node->isStdInitListInitialization()) in VisitCXXTemporaryObjectExpr()
2177 else if (Node->isListInitialization()) in VisitCXXTemporaryObjectExpr()
2183 void StmtPrinter::VisitLambdaExpr(LambdaExpr *Node) { in VisitLambdaExpr() argument
2186 switch (Node->getCaptureDefault()) { in VisitLambdaExpr()
2200 for (LambdaExpr::capture_iterator C = Node->explicit_capture_begin(), in VisitLambdaExpr()
2201 CEnd = Node->explicit_capture_end(); in VisitLambdaExpr()
2221 if (Node->getCaptureDefault() != LCD_ByRef || Node->isInitCapture(C)) in VisitLambdaExpr()
2237 if (Node->isInitCapture(C)) { in VisitLambdaExpr()
2258 if (!Node->getExplicitTemplateParameters().empty()) { in VisitLambdaExpr()
2259 Node->getTemplateParameterList()->print( in VisitLambdaExpr()
2260 OS, Node->getLambdaClass()->getASTContext(), in VisitLambdaExpr()
2264 if (Node->hasExplicitParameters()) { in VisitLambdaExpr()
2266 CXXMethodDecl *Method = Node->getCallOperator(); in VisitLambdaExpr()
2287 if (Node->isMutable()) in VisitLambdaExpr()
2296 if (Node->hasExplicitResultType()) { in VisitLambdaExpr()
2307 PrintRawCompoundStmt(Node->getCompoundStmtBody()); in VisitLambdaExpr()
2310 void StmtPrinter::VisitCXXScalarValueInitExpr(CXXScalarValueInitExpr *Node) { in VisitCXXScalarValueInitExpr() argument
2311 if (TypeSourceInfo *TSInfo = Node->getTypeSourceInfo()) in VisitCXXScalarValueInitExpr()
2314 Node->getType().print(OS, Policy); in VisitCXXScalarValueInitExpr()
2418 CXXUnresolvedConstructExpr *Node) { in VisitCXXUnresolvedConstructExpr() argument
2419 Node->getTypeAsWritten().print(OS, Policy); in VisitCXXUnresolvedConstructExpr()
2420 if (!Node->isListInitialization()) in VisitCXXUnresolvedConstructExpr()
2422 for (auto Arg = Node->arg_begin(), ArgEnd = Node->arg_end(); Arg != ArgEnd; in VisitCXXUnresolvedConstructExpr()
2424 if (Arg != Node->arg_begin()) in VisitCXXUnresolvedConstructExpr()
2428 if (!Node->isListInitialization()) in VisitCXXUnresolvedConstructExpr()
2433 CXXDependentScopeMemberExpr *Node) { in VisitCXXDependentScopeMemberExpr() argument
2434 if (!Node->isImplicitAccess()) { in VisitCXXDependentScopeMemberExpr()
2435 PrintExpr(Node->getBase()); in VisitCXXDependentScopeMemberExpr()
2436 OS << (Node->isArrow() ? "->" : "."); in VisitCXXDependentScopeMemberExpr()
2438 if (NestedNameSpecifier *Qualifier = Node->getQualifier()) in VisitCXXDependentScopeMemberExpr()
2440 if (Node->hasTemplateKeyword()) in VisitCXXDependentScopeMemberExpr()
2442 OS << Node->getMemberNameInfo(); in VisitCXXDependentScopeMemberExpr()
2443 if (Node->hasExplicitTemplateArgs()) in VisitCXXDependentScopeMemberExpr()
2444 printTemplateArgumentList(OS, Node->template_arguments(), Policy); in VisitCXXDependentScopeMemberExpr()
2447 void StmtPrinter::VisitUnresolvedMemberExpr(UnresolvedMemberExpr *Node) { in VisitUnresolvedMemberExpr() argument
2448 if (!Node->isImplicitAccess()) { in VisitUnresolvedMemberExpr()
2449 PrintExpr(Node->getBase()); in VisitUnresolvedMemberExpr()
2450 OS << (Node->isArrow() ? "->" : "."); in VisitUnresolvedMemberExpr()
2452 if (NestedNameSpecifier *Qualifier = Node->getQualifier()) in VisitUnresolvedMemberExpr()
2454 if (Node->hasTemplateKeyword()) in VisitUnresolvedMemberExpr()
2456 OS << Node->getMemberNameInfo(); in VisitUnresolvedMemberExpr()
2457 if (Node->hasExplicitTemplateArgs()) in VisitUnresolvedMemberExpr()
2458 printTemplateArgumentList(OS, Node->template_arguments(), Policy); in VisitUnresolvedMemberExpr()
2503 SubstNonTypeTemplateParmPackExpr *Node) { in VisitSubstNonTypeTemplateParmPackExpr() argument
2504 OS << *Node->getParameterPack(); in VisitSubstNonTypeTemplateParmPackExpr()
2508 SubstNonTypeTemplateParmExpr *Node) { in VisitSubstNonTypeTemplateParmExpr() argument
2509 Visit(Node->getReplacement()); in VisitSubstNonTypeTemplateParmExpr()
2516 void StmtPrinter::VisitMaterializeTemporaryExpr(MaterializeTemporaryExpr *Node){ in VisitMaterializeTemporaryExpr() argument
2517 PrintExpr(Node->getSubExpr()); in VisitMaterializeTemporaryExpr()
2534 void StmtPrinter::VisitCXXParenListInitExpr(CXXParenListInitExpr *Node) { in VisitCXXParenListInitExpr() argument
2536 llvm::interleaveComma(Node->getInitExprs(), OS, in VisitCXXParenListInitExpr()
2639 void StmtPrinter::VisitObjCStringLiteral(ObjCStringLiteral *Node) { in VisitObjCStringLiteral() argument
2641 VisitStringLiteral(Node->getString()); in VisitObjCStringLiteral()
2676 void StmtPrinter::VisitObjCEncodeExpr(ObjCEncodeExpr *Node) { in VisitObjCEncodeExpr() argument
2678 Node->getEncodedType().print(OS, Policy); in VisitObjCEncodeExpr()
2682 void StmtPrinter::VisitObjCSelectorExpr(ObjCSelectorExpr *Node) { in VisitObjCSelectorExpr() argument
2684 Node->getSelector().print(OS); in VisitObjCSelectorExpr()
2688 void StmtPrinter::VisitObjCProtocolExpr(ObjCProtocolExpr *Node) { in VisitObjCProtocolExpr() argument
2689 OS << "@protocol(" << *Node->getProtocol() << ')'; in VisitObjCProtocolExpr()
2730 void StmtPrinter::VisitObjCBoolLiteralExpr(ObjCBoolLiteralExpr *Node) { in VisitObjCBoolLiteralExpr() argument
2731 OS << (Node->getValue() ? "__objc_yes" : "__objc_no"); in VisitObjCBoolLiteralExpr()
2747 void StmtPrinter::VisitBlockExpr(BlockExpr *Node) { in VisitBlockExpr() argument
2748 BlockDecl *BD = Node->getBlockDecl(); in VisitBlockExpr()
2751 const FunctionType *AFT = Node->getFunctionType(); in VisitBlockExpr()
2774 void StmtPrinter::VisitOpaqueValueExpr(OpaqueValueExpr *Node) { in VisitOpaqueValueExpr() argument
2775 PrintExpr(Node->getSourceExpr()); in VisitOpaqueValueExpr()
2778 void StmtPrinter::VisitTypoExpr(TypoExpr *Node) { in VisitTypoExpr() argument
2783 void StmtPrinter::VisitRecoveryExpr(RecoveryExpr *Node) { in VisitRecoveryExpr() argument
2786 for (Expr *E : Node->subExpressions()) { in VisitRecoveryExpr()
2794 void StmtPrinter::VisitAsTypeExpr(AsTypeExpr *Node) { in VisitAsTypeExpr() argument
2796 PrintExpr(Node->getSrcExpr()); in VisitAsTypeExpr()
2798 Node->getType().print(OS, Policy); in VisitAsTypeExpr()