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);
1239 static void dumpBasePath(raw_ostream &OS, const CastExpr *Node) {
1240 if (Node->path_empty())
1245 for (CastExpr::path_const_iterator I = Node->path_begin(),
1246 E = Node->path_end();
1264 void TextNodeDumper::VisitIfStmt(const IfStmt *Node) {
1265 if (Node->hasInitStorage())
1267 if (Node->hasVarStorage())
1269 if (Node->hasElseStorage())
1271 if (Node->isConstexpr())
1273 if (Node->isConsteval()) {
1275 if (Node->isNegatedConsteval())
1281 void TextNodeDumper::VisitSwitchStmt(const SwitchStmt *Node) {
1282 if (Node->hasInitStorage())
1284 if (Node->hasVarStorage())
1288 void TextNodeDumper::VisitWhileStmt(const WhileStmt *Node) {
1289 if (Node->hasVarStorage())
1293 void TextNodeDumper::VisitLabelStmt(const LabelStmt *Node) {
1294 OS << " '" << Node->getName() << "'";
1295 if (Node->isSideEntry())
1299 void TextNodeDumper::VisitGotoStmt(const GotoStmt *Node) {
1300 OS << " '" << Node->getLabel()->getName() << "'";
1301 dumpPointer(Node->getLabel());
1304 void TextNodeDumper::VisitCaseStmt(const CaseStmt *Node) {
1305 if (Node->caseStmtIsGNURange())
1309 void clang::TextNodeDumper::VisitReturnStmt(const ReturnStmt *Node) {
1310 if (const VarDecl *Cand = Node->getNRVOCandidate()) {
1317 void clang::TextNodeDumper::VisitCoawaitExpr(const CoawaitExpr *Node) {
1318 if (Node->isImplicit())
1322 void clang::TextNodeDumper::VisitCoreturnStmt(const CoreturnStmt *Node) {
1323 if (Node->isImplicit())
1327 void TextNodeDumper::VisitConstantExpr(const ConstantExpr *Node) {
1328 if (Node->hasAPValueResult())
1330 [=] { Visit(Node->getAPValueResult(), Node->getType()); });
1333 void TextNodeDumper::VisitCallExpr(const CallExpr *Node) {
1334 if (Node->usesADL())
1336 if (Node->hasStoredFPFeatures())
1337 printFPOptions(Node->getFPFeatures());
1340 void TextNodeDumper::VisitCXXOperatorCallExpr(const CXXOperatorCallExpr *Node) {
1341 const char *OperatorSpelling = clang::getOperatorSpelling(Node->getOperator());
1345 VisitCallExpr(Node);
1348 void TextNodeDumper::VisitCastExpr(const CastExpr *Node) {
1352 OS << Node->getCastKindName();
1354 dumpBasePath(OS, Node);
1356 if (Node->hasStoredFPFeatures())
1357 printFPOptions(Node->getFPFeatures());
1360 void TextNodeDumper::VisitImplicitCastExpr(const ImplicitCastExpr *Node) {
1361 VisitCastExpr(Node);
1362 if (Node->isPartOfExplicitCast())
1366 void TextNodeDumper::VisitDeclRefExpr(const DeclRefExpr *Node) {
1368 dumpBareDeclRef(Node->getDecl());
1369 dumpNestedNameSpecifier(Node->getQualifier());
1370 if (Node->getDecl() != Node->getFoundDecl()) {
1372 dumpBareDeclRef(Node->getFoundDecl());
1375 switch (Node->isNonOdrUse()) {
1381 if (Node->isCapturedByCopyInLambdaWithExplicitObjectParameter())
1383 else if (Node->refersToEnclosingVariableOrCapture())
1386 if (Node->isImmediateEscalating())
1391 const DependentScopeDeclRefExpr *Node) {
1393 dumpNestedNameSpecifier(Node->getQualifier());
1397 const UnresolvedLookupExpr *Node) {
1399 if (!Node->requiresADL())
1401 OS << "ADL) = '" << Node->getName() << '\'';
1403 UnresolvedLookupExpr::decls_iterator I = Node->decls_begin(),
1404 E = Node->decls_end();
1411 void TextNodeDumper::VisitObjCIvarRefExpr(const ObjCIvarRefExpr *Node) {
1414 OS << " " << Node->getDecl()->getDeclKindName() << "Decl";
1416 OS << "='" << *Node->getDecl() << "'";
1417 dumpPointer(Node->getDecl());
1418 if (Node->isFreeIvar())
1423 const SYCLUniqueStableNameExpr *Node) {
1424 dumpType(Node->getTypeSourceInfo()->getType());
1427 void TextNodeDumper::VisitPredefinedExpr(const PredefinedExpr *Node) {
1428 OS << " " << PredefinedExpr::getIdentKindName(Node->getIdentKind());
1431 void TextNodeDumper::VisitCharacterLiteral(const CharacterLiteral *Node) {
1433 OS << " " << Node->getValue();
1436 void TextNodeDumper::VisitIntegerLiteral(const IntegerLiteral *Node) {
1437 bool isSigned = Node->getType()->isSignedIntegerType();
1439 OS << " " << toString(Node->getValue(), 10, isSigned);
1442 void TextNodeDumper::VisitFixedPointLiteral(const FixedPointLiteral *Node) {
1444 OS << " " << Node->getValueAsString(/*Radix=*/10);
1447 void TextNodeDumper::VisitFloatingLiteral(const FloatingLiteral *Node) {
1449 OS << " " << Node->getValueAsApproximateDouble();
1470 void TextNodeDumper::VisitUnaryOperator(const UnaryOperator *Node) {
1471 OS << " " << (Node->isPostfix() ? "postfix" : "prefix") << " '"
1472 << UnaryOperator::getOpcodeStr(Node->getOpcode()) << "'";
1473 if (!Node->canOverflow())
1475 if (Node->hasStoredFPFeatures())
1476 printFPOptions(Node->getStoredFPFeatures());
1480 const UnaryExprOrTypeTraitExpr *Node) {
1481 OS << " " << getTraitSpelling(Node->getKind());
1483 if (Node->isArgumentType())
1484 dumpType(Node->getArgumentType());
1487 void TextNodeDumper::VisitMemberExpr(const MemberExpr *Node) {
1488 OS << " " << (Node->isArrow() ? "->" : ".") << *Node->getMemberDecl();
1489 dumpPointer(Node->getMemberDecl());
1490 dumpNestedNameSpecifier(Node->getQualifier());
1491 switch (Node->isNonOdrUse()) {
1500 const ExtVectorElementExpr *Node) {
1501 OS << " " << Node->getAccessor().getNameStart();
1504 void TextNodeDumper::VisitBinaryOperator(const BinaryOperator *Node) {
1505 OS << " '" << BinaryOperator::getOpcodeStr(Node->getOpcode()) << "'";
1506 if (Node->hasStoredFPFeatures())
1507 printFPOptions(Node->getStoredFPFeatures());
1511 const CompoundAssignOperator *Node) {
1512 OS << " '" << BinaryOperator::getOpcodeStr(Node->getOpcode())
1514 dumpBareType(Node->getComputationLHSType());
1516 dumpBareType(Node->getComputationResultType());
1517 if (Node->hasStoredFPFeatures())
1518 printFPOptions(Node->getStoredFPFeatures());
1521 void TextNodeDumper::VisitAddrLabelExpr(const AddrLabelExpr *Node) {
1522 OS << " " << Node->getLabel()->getName();
1523 dumpPointer(Node->getLabel());
1526 void TextNodeDumper::VisitCXXNamedCastExpr(const CXXNamedCastExpr *Node) {
1527 OS << " " << Node->getCastName() << "<"
1528 << Node->getTypeAsWritten().getAsString() << ">"
1529 << " <" << Node->getCastKindName();
1530 dumpBasePath(OS, Node);
1534 void TextNodeDumper::VisitCXXBoolLiteralExpr(const CXXBoolLiteralExpr *Node) {
1535 OS << " " << (Node->getValue() ? "true" : "false");
1538 void TextNodeDumper::VisitCXXThisExpr(const CXXThisExpr *Node) {
1539 if (Node->isImplicit())
1541 if (Node->isCapturedByCopyInLambdaWithExplicitObjectParameter())
1547 const CXXFunctionalCastExpr *Node) {
1548 OS << " functional cast to " << Node->getTypeAsWritten().getAsString() << " <"
1549 << Node->getCastKindName() << ">";
1550 if (Node->hasStoredFPFeatures())
1551 printFPOptions(Node->getFPFeatures());
1554 void TextNodeDumper::VisitCXXStaticCastExpr(const CXXStaticCastExpr *Node) {
1555 VisitCXXNamedCastExpr(Node);
1556 if (Node->hasStoredFPFeatures())
1557 printFPOptions(Node->getFPFeatures());
1561 const CXXUnresolvedConstructExpr *Node) {
1562 dumpType(Node->getTypeAsWritten());
1563 if (Node->isListInitialization())
1567 void TextNodeDumper::VisitCXXConstructExpr(const CXXConstructExpr *Node) {
1568 CXXConstructorDecl *Ctor = Node->getConstructor();
1570 if (Node->isElidable())
1572 if (Node->isListInitialization())
1574 if (Node->isStdInitListInitialization())
1576 if (Node->requiresZeroInitialization())
1578 if (Node->isImmediateEscalating())
1583 const CXXBindTemporaryExpr *Node) {
1585 dumpPointer(Node);
1589 void TextNodeDumper::VisitCXXNewExpr(const CXXNewExpr *Node) {
1590 if (Node->isGlobalNew())
1592 if (Node->isArray())
1594 if (Node->getOperatorNew()) {
1596 dumpBareDeclRef(Node->getOperatorNew());
1602 void TextNodeDumper::VisitCXXDeleteExpr(const CXXDeleteExpr *Node) {
1603 if (Node->isGlobalDelete())
1605 if (Node->isArrayForm())
1607 if (Node->getOperatorDelete()) {
1609 dumpBareDeclRef(Node->getOperatorDelete());
1613 void TextNodeDumper::VisitTypeTraitExpr(const TypeTraitExpr *Node) {
1614 OS << " " << getTraitSpelling(Node->getTrait());
1617 void TextNodeDumper::VisitArrayTypeTraitExpr(const ArrayTypeTraitExpr *Node) {
1618 OS << " " << getTraitSpelling(Node->getTrait());
1621 void TextNodeDumper::VisitExpressionTraitExpr(const ExpressionTraitExpr *Node) {
1622 OS << " " << getTraitSpelling(Node->getTrait());
1625 void TextNodeDumper::VisitCXXDefaultArgExpr(const CXXDefaultArgExpr *Node) {
1626 if (Node->hasRewrittenInit())
1630 void TextNodeDumper::VisitCXXDefaultInitExpr(const CXXDefaultInitExpr *Node) {
1631 if (Node->hasRewrittenInit())
1636 const MaterializeTemporaryExpr *Node) {
1637 if (const ValueDecl *VD = Node->getExtendingDecl()) {
1643 void TextNodeDumper::VisitExprWithCleanups(const ExprWithCleanups *Node) {
1644 for (unsigned i = 0, e = Node->getNumObjects(); i != e; ++i)
1645 dumpCleanupObject(Node->getObject(i));
1648 void TextNodeDumper::VisitSizeOfPackExpr(const SizeOfPackExpr *Node) {
1649 dumpPointer(Node->getPack());
1650 dumpName(Node->getPack());
1654 const CXXDependentScopeMemberExpr *Node) {
1655 OS << " " << (Node->isArrow() ? "->" : ".") << Node->getMember();
1658 void TextNodeDumper::VisitObjCMessageExpr(const ObjCMessageExpr *Node) {
1660 Node->getSelector().print(OS);
1661 switch (Node->getReceiverKind()) {
1667 dumpBareType(Node->getClassReceiver());
1680 void TextNodeDumper::VisitObjCBoxedExpr(const ObjCBoxedExpr *Node) {
1681 if (auto *BoxingMethod = Node->getBoxingMethod()) {
1687 void TextNodeDumper::VisitObjCAtCatchStmt(const ObjCAtCatchStmt *Node) {
1688 if (!Node->getCatchParamDecl())
1692 void TextNodeDumper::VisitObjCEncodeExpr(const ObjCEncodeExpr *Node) {
1693 dumpType(Node->getEncodedType());
1696 void TextNodeDumper::VisitObjCSelectorExpr(const ObjCSelectorExpr *Node) {
1698 Node->getSelector().print(OS);
1701 void TextNodeDumper::VisitObjCProtocolExpr(const ObjCProtocolExpr *Node) {
1702 OS << ' ' << *Node->getProtocol();
1705 void TextNodeDumper::VisitObjCPropertyRefExpr(const ObjCPropertyRefExpr *Node) {
1706 if (Node->isImplicitProperty()) {
1708 if (Node->getImplicitPropertyGetter())
1709 Node->getImplicitPropertyGetter()->getSelector().print(OS);
1714 if (ObjCMethodDecl *Setter = Node->getImplicitPropertySetter())
1720 OS << " Kind=PropertyRef Property=\"" << *Node->getExplicitProperty()
1724 if (Node->isSuperReceiver())
1728 if (Node->isMessagingGetter() && Node->isMessagingSetter())
1730 else if (Node->isMessagingGetter())
1732 else if (Node->isMessagingSetter())
1737 const ObjCSubscriptRefExpr *Node) {
1738 if (Node->isArraySubscriptRefExpr())
1742 if (Node->getAtIndexMethodDecl())
1743 Node->getAtIndexMethodDecl()->getSelector().print(OS);
1747 if (Node->isArraySubscriptRefExpr())
1751 if (Node->setAtIndexMethodDecl())
1752 Node->setAtIndexMethodDecl()->getSelector().print(OS);
1757 void TextNodeDumper::VisitObjCBoolLiteralExpr(const ObjCBoolLiteralExpr *Node) {
1758 OS << " " << (Node->getValue() ? "__objc_yes" : "__objc_no");
1761 void TextNodeDumper::VisitOMPIteratorExpr(const OMPIteratorExpr *Node) {
1763 for (unsigned I = 0, E = Node->numOfIterators(); I < E; ++I) {
1764 Visit(Node->getIteratorDecl(I));
1766 const OMPIteratorExpr::IteratorRange Range = Node->getIteratorRange(I);
1779 const ConceptSpecializationExpr *Node) {
1781 dumpBareDeclRef(Node->getFoundDecl());
1785 const RequiresExpr *Node) {
1786 if (!Node->isValueDependent())
1787 OS << (Node->isSatisfied() ? " satisfied" : " unsatisfied");