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