Lines Matching defs:Node
126 void TextNodeDumper::Visit(const Stmt *Node) {
127 if (!Node) {
134 OS << Node->getStmtClassName();
136 dumpPointer(Node);
137 dumpSourceRange(Node->getSourceRange());
139 if (const auto *E = dyn_cast<Expr>(Node)) {
185 ConstStmtVisitor<TextNodeDumper>::Visit(Node);
1345 static void dumpBasePath(raw_ostream &OS, const CastExpr *Node) {
1346 if (Node->path_empty())
1351 for (CastExpr::path_const_iterator I = Node->path_begin(),
1352 E = Node->path_end();
1370 void TextNodeDumper::VisitIfStmt(const IfStmt *Node) {
1371 if (Node->hasInitStorage())
1373 if (Node->hasVarStorage())
1375 if (Node->hasElseStorage())
1377 if (Node->isConstexpr())
1379 if (Node->isConsteval()) {
1381 if (Node->isNegatedConsteval())
1387 void TextNodeDumper::VisitSwitchStmt(const SwitchStmt *Node) {
1388 if (Node->hasInitStorage())
1390 if (Node->hasVarStorage())
1394 void TextNodeDumper::VisitWhileStmt(const WhileStmt *Node) {
1395 if (Node->hasVarStorage())
1399 void TextNodeDumper::VisitLabelStmt(const LabelStmt *Node) {
1400 OS << " '" << Node->getName() << "'";
1401 if (Node->isSideEntry())
1405 void TextNodeDumper::VisitGotoStmt(const GotoStmt *Node) {
1406 OS << " '" << Node->getLabel()->getName() << "'";
1407 dumpPointer(Node->getLabel());
1410 void TextNodeDumper::VisitCaseStmt(const CaseStmt *Node) {
1411 if (Node->caseStmtIsGNURange())
1415 void clang::TextNodeDumper::VisitReturnStmt(const ReturnStmt *Node) {
1416 if (const VarDecl *Cand = Node->getNRVOCandidate()) {
1423 void clang::TextNodeDumper::VisitCoawaitExpr(const CoawaitExpr *Node) {
1424 if (Node->isImplicit())
1428 void clang::TextNodeDumper::VisitCoreturnStmt(const CoreturnStmt *Node) {
1429 if (Node->isImplicit())
1433 void TextNodeDumper::VisitConstantExpr(const ConstantExpr *Node) {
1434 if (Node->hasAPValueResult())
1436 [=] { Visit(Node->getAPValueResult(), Node->getType()); });
1439 void TextNodeDumper::VisitCallExpr(const CallExpr *Node) {
1440 if (Node->usesADL())
1442 if (Node->hasStoredFPFeatures())
1443 printFPOptions(Node->getFPFeatures());
1446 void TextNodeDumper::VisitCXXOperatorCallExpr(const CXXOperatorCallExpr *Node) {
1447 const char *OperatorSpelling = clang::getOperatorSpelling(Node->getOperator());
1451 VisitCallExpr(Node);
1454 void TextNodeDumper::VisitCastExpr(const CastExpr *Node) {
1458 OS << Node->getCastKindName();
1460 dumpBasePath(OS, Node);
1462 if (Node->hasStoredFPFeatures())
1463 printFPOptions(Node->getFPFeatures());
1466 void TextNodeDumper::VisitImplicitCastExpr(const ImplicitCastExpr *Node) {
1467 VisitCastExpr(Node);
1468 if (Node->isPartOfExplicitCast())
1472 void TextNodeDumper::VisitDeclRefExpr(const DeclRefExpr *Node) {
1474 dumpBareDeclRef(Node->getDecl());
1475 dumpNestedNameSpecifier(Node->getQualifier());
1476 if (Node->getDecl() != Node->getFoundDecl()) {
1478 dumpBareDeclRef(Node->getFoundDecl());
1481 switch (Node->isNonOdrUse()) {
1487 if (Node->isCapturedByCopyInLambdaWithExplicitObjectParameter())
1489 else if (Node->refersToEnclosingVariableOrCapture())
1492 if (Node->isImmediateEscalating())
1497 const DependentScopeDeclRefExpr *Node) {
1499 dumpNestedNameSpecifier(Node->getQualifier());
1503 const UnresolvedLookupExpr *Node) {
1505 if (!Node->requiresADL())
1507 OS << "ADL) = '" << Node->getName() << '\'';
1509 UnresolvedLookupExpr::decls_iterator I = Node->decls_begin(),
1510 E = Node->decls_end();
1517 void TextNodeDumper::VisitObjCIvarRefExpr(const ObjCIvarRefExpr *Node) {
1520 OS << " " << Node->getDecl()->getDeclKindName() << "Decl";
1522 OS << "='" << *Node->getDecl() << "'";
1523 dumpPointer(Node->getDecl());
1524 if (Node->isFreeIvar())
1529 const SYCLUniqueStableNameExpr *Node) {
1530 dumpType(Node->getTypeSourceInfo()->getType());
1533 void TextNodeDumper::VisitPredefinedExpr(const PredefinedExpr *Node) {
1534 OS << " " << PredefinedExpr::getIdentKindName(Node->getIdentKind());
1537 void TextNodeDumper::VisitCharacterLiteral(const CharacterLiteral *Node) {
1539 OS << " " << Node->getValue();
1542 void TextNodeDumper::VisitIntegerLiteral(const IntegerLiteral *Node) {
1543 bool isSigned = Node->getType()->isSignedIntegerType();
1545 OS << " " << toString(Node->getValue(), 10, isSigned);
1548 void TextNodeDumper::VisitFixedPointLiteral(const FixedPointLiteral *Node) {
1550 OS << " " << Node->getValueAsString(/*Radix=*/10);
1553 void TextNodeDumper::VisitFloatingLiteral(const FloatingLiteral *Node) {
1555 OS << " " << Node->getValueAsApproximateDouble();
1576 void TextNodeDumper::VisitUnaryOperator(const UnaryOperator *Node) {
1577 OS << " " << (Node->isPostfix() ? "postfix" : "prefix") << " '"
1578 << UnaryOperator::getOpcodeStr(Node->getOpcode()) << "'";
1579 if (!Node->canOverflow())
1581 if (Node->hasStoredFPFeatures())
1582 printFPOptions(Node->getStoredFPFeatures());
1586 const UnaryExprOrTypeTraitExpr *Node) {
1587 OS << " " << getTraitSpelling(Node->getKind());
1589 if (Node->isArgumentType())
1590 dumpType(Node->getArgumentType());
1593 void TextNodeDumper::VisitMemberExpr(const MemberExpr *Node) {
1594 OS << " " << (Node->isArrow() ? "->" : ".") << *Node->getMemberDecl();
1595 dumpPointer(Node->getMemberDecl());
1596 dumpNestedNameSpecifier(Node->getQualifier());
1597 switch (Node->isNonOdrUse()) {
1606 const ExtVectorElementExpr *Node) {
1607 OS << " " << Node->getAccessor().getNameStart();
1610 void TextNodeDumper::VisitBinaryOperator(const BinaryOperator *Node) {
1611 OS << " '" << BinaryOperator::getOpcodeStr(Node->getOpcode()) << "'";
1612 if (Node->hasStoredFPFeatures())
1613 printFPOptions(Node->getStoredFPFeatures());
1617 const CompoundAssignOperator *Node) {
1618 OS << " '" << BinaryOperator::getOpcodeStr(Node->getOpcode())
1620 dumpBareType(Node->getComputationLHSType());
1622 dumpBareType(Node->getComputationResultType());
1623 if (Node->hasStoredFPFeatures())
1624 printFPOptions(Node->getStoredFPFeatures());
1627 void TextNodeDumper::VisitAddrLabelExpr(const AddrLabelExpr *Node) {
1628 OS << " " << Node->getLabel()->getName();
1629 dumpPointer(Node->getLabel());
1632 void TextNodeDumper::VisitCXXNamedCastExpr(const CXXNamedCastExpr *Node) {
1633 OS << " " << Node->getCastName() << "<"
1634 << Node->getTypeAsWritten().getAsString() << ">"
1635 << " <" << Node->getCastKindName();
1636 dumpBasePath(OS, Node);
1640 void TextNodeDumper::VisitCXXBoolLiteralExpr(const CXXBoolLiteralExpr *Node) {
1641 OS << " " << (Node->getValue() ? "true" : "false");
1644 void TextNodeDumper::VisitCXXThisExpr(const CXXThisExpr *Node) {
1645 if (Node->isImplicit())
1647 if (Node->isCapturedByCopyInLambdaWithExplicitObjectParameter())
1653 const CXXFunctionalCastExpr *Node) {
1654 OS << " functional cast to " << Node->getTypeAsWritten().getAsString() << " <"
1655 << Node->getCastKindName() << ">";
1656 if (Node->hasStoredFPFeatures())
1657 printFPOptions(Node->getFPFeatures());
1660 void TextNodeDumper::VisitCXXStaticCastExpr(const CXXStaticCastExpr *Node) {
1661 VisitCXXNamedCastExpr(Node);
1662 if (Node->hasStoredFPFeatures())
1663 printFPOptions(Node->getFPFeatures());
1667 const CXXUnresolvedConstructExpr *Node) {
1668 dumpType(Node->getTypeAsWritten());
1669 if (Node->isListInitialization())
1673 void TextNodeDumper::VisitCXXConstructExpr(const CXXConstructExpr *Node) {
1674 CXXConstructorDecl *Ctor = Node->getConstructor();
1676 if (Node->isElidable())
1678 if (Node->isListInitialization())
1680 if (Node->isStdInitListInitialization())
1682 if (Node->requiresZeroInitialization())
1684 if (Node->isImmediateEscalating())
1689 const CXXBindTemporaryExpr *Node) {
1691 dumpPointer(Node);
1695 void TextNodeDumper::VisitCXXNewExpr(const CXXNewExpr *Node) {
1696 if (Node->isGlobalNew())
1698 if (Node->isArray())
1700 if (Node->getOperatorNew()) {
1702 dumpBareDeclRef(Node->getOperatorNew());
1708 void TextNodeDumper::VisitCXXDeleteExpr(const CXXDeleteExpr *Node) {
1709 if (Node->isGlobalDelete())
1711 if (Node->isArrayForm())
1713 if (Node->getOperatorDelete()) {
1715 dumpBareDeclRef(Node->getOperatorDelete());
1719 void TextNodeDumper::VisitTypeTraitExpr(const TypeTraitExpr *Node) {
1720 OS << " " << getTraitSpelling(Node->getTrait());
1723 void TextNodeDumper::VisitArrayTypeTraitExpr(const ArrayTypeTraitExpr *Node) {
1724 OS << " " << getTraitSpelling(Node->getTrait());
1727 void TextNodeDumper::VisitExpressionTraitExpr(const ExpressionTraitExpr *Node) {
1728 OS << " " << getTraitSpelling(Node->getTrait());
1731 void TextNodeDumper::VisitCXXDefaultArgExpr(const CXXDefaultArgExpr *Node) {
1732 if (Node->hasRewrittenInit())
1736 void TextNodeDumper::VisitCXXDefaultInitExpr(const CXXDefaultInitExpr *Node) {
1737 if (Node->hasRewrittenInit())
1742 const MaterializeTemporaryExpr *Node) {
1743 if (const ValueDecl *VD = Node->getExtendingDecl()) {
1749 void TextNodeDumper::VisitExprWithCleanups(const ExprWithCleanups *Node) {
1750 for (unsigned i = 0, e = Node->getNumObjects(); i != e; ++i)
1751 dumpCleanupObject(Node->getObject(i));
1754 void TextNodeDumper::VisitSizeOfPackExpr(const SizeOfPackExpr *Node) {
1755 dumpPointer(Node->getPack());
1756 dumpName(Node->getPack());
1760 const CXXDependentScopeMemberExpr *Node) {
1761 OS << " " << (Node->isArrow() ? "->" : ".") << Node->getMember();
1764 void TextNodeDumper::VisitObjCMessageExpr(const ObjCMessageExpr *Node) {
1766 Node->getSelector().print(OS);
1767 switch (Node->getReceiverKind()) {
1773 dumpBareType(Node->getClassReceiver());
1786 void TextNodeDumper::VisitObjCBoxedExpr(const ObjCBoxedExpr *Node) {
1787 if (auto *BoxingMethod = Node->getBoxingMethod()) {
1793 void TextNodeDumper::VisitObjCAtCatchStmt(const ObjCAtCatchStmt *Node) {
1794 if (!Node->getCatchParamDecl())
1798 void TextNodeDumper::VisitObjCEncodeExpr(const ObjCEncodeExpr *Node) {
1799 dumpType(Node->getEncodedType());
1802 void TextNodeDumper::VisitObjCSelectorExpr(const ObjCSelectorExpr *Node) {
1804 Node->getSelector().print(OS);
1807 void TextNodeDumper::VisitObjCProtocolExpr(const ObjCProtocolExpr *Node) {
1808 OS << ' ' << *Node->getProtocol();
1811 void TextNodeDumper::VisitObjCPropertyRefExpr(const ObjCPropertyRefExpr *Node) {
1812 if (Node->isImplicitProperty()) {
1814 if (Node->getImplicitPropertyGetter())
1815 Node->getImplicitPropertyGetter()->getSelector().print(OS);
1820 if (ObjCMethodDecl *Setter = Node->getImplicitPropertySetter())
1826 OS << " Kind=PropertyRef Property=\"" << *Node->getExplicitProperty()
1830 if (Node->isSuperReceiver())
1834 if (Node->isMessagingGetter() && Node->isMessagingSetter())
1836 else if (Node->isMessagingGetter())
1838 else if (Node->isMessagingSetter())
1843 const ObjCSubscriptRefExpr *Node) {
1844 if (Node->isArraySubscriptRefExpr())
1848 if (Node->getAtIndexMethodDecl())
1849 Node->getAtIndexMethodDecl()->getSelector().print(OS);
1853 if (Node->isArraySubscriptRefExpr())
1857 if (Node->setAtIndexMethodDecl())
1858 Node->setAtIndexMethodDecl()->getSelector().print(OS);
1863 void TextNodeDumper::VisitObjCBoolLiteralExpr(const ObjCBoolLiteralExpr *Node) {
1864 OS << " " << (Node->getValue() ? "__objc_yes" : "__objc_no");
1867 void TextNodeDumper::VisitOMPIteratorExpr(const OMPIteratorExpr *Node) {
1869 for (unsigned I = 0, E = Node->numOfIterators(); I < E; ++I) {
1870 Visit(Node->getIteratorDecl(I));
1872 const OMPIteratorExpr::IteratorRange Range = Node->getIteratorRange(I);
1885 const ConceptSpecializationExpr *Node) {
1887 dumpBareDeclRef(Node->getFoundDecl());
1891 const RequiresExpr *Node) {
1892 if (!Node->isValueDependent())
1893 OS << (Node->isSatisfied() ? " satisfied" : " unsatisfied");