reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Declarations

tools/clang/include/clang/ASTMatchers/ASTMatchers.h
 2815     hasDescendant;

References

tools/clang/lib/ASTMatchers/Dynamic/Registry.cpp
  266   REGISTER_MATCHER(hasDescendant);
tools/clang/lib/Analysis/ExprMutationAnalyzer.cpp
  177                                       hasDescendant(equalsNode(Exp)))),
tools/clang/lib/StaticAnalyzer/Checkers/GCDAntipatternChecker.cpp
  101           varDecl(hasDescendant(SemaphoreCreateM)).bind(SemaphoreBinding)),
  109   auto ArgCallsSignalM = hasAnyArgument(stmt(hasDescendant(callExpr(
  143           varDecl(hasDescendant(DispatchGroupCreateM)).bind(GroupBinding)),
  155   auto ArgCallsSignalM = hasAnyArgument(stmt(hasDescendant(callExpr(
tools/clang/lib/StaticAnalyzer/Checkers/NumberObjectConversionChecker.cpp
  304               hasDescendant(AnotherSuspiciousNumberObjectExprM))),
  306               hasDescendant(AnotherSuspiciousNumberObjectExprM)))))
tools/clang/lib/StaticAnalyzer/Checkers/RunLoopAutoreleaseLeakChecker.cpp
  163         hasDescendant(RunLoopRunM),
  164         hasDescendant(OtherMessageSentM)).bind(AutoreleasePoolBind);
  166   DeclarationMatcher GroupM = decl(hasDescendant(RunLoopInAutorelease));
  184     hasDescendant(RunLoopRunM),
  185     hasDescendant(OtherMessageSentM)
tools/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObjectChecker.cpp
  565     auto Accesses = match(stmt(hasDescendant(FieldAccessM)), *MethodBody, AC);
  571     auto Guards = match(stmt(hasDescendant(GuardM)), *MethodBody, AC);
tools/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
  446   StatementMatcher ParentM = stmt(hasDescendant(WriteIntoIvarM));
tools/clang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp
  113   return declStmt(hasDescendant(varDecl(
  128   return hasDescendant(stmt(
tools/clang/lib/StaticAnalyzer/Core/LoopWidening.cpp
   70   auto Matches = match(findAll(stmt(hasDescendant(varDecl(hasType(referenceType())).bind(MatchRef)))),
tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp
 1092         StatementMatcher RefToStatic = stmt(hasDescendant(declRefExpr(
tools/clang/tools/extra/clang-change-namespace/ChangeNamespace.cpp
  423       classTemplateDecl(unless(hasDescendant(cxxRecordDecl(isDefinition()))),
tools/clang/tools/extra/clang-tidy/abseil/StrCatAppendCheck.cpp
   56       callExpr(hasAnyArgument(expr(hasDescendant(declRefExpr(
tools/clang/tools/extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp
   87       hasDescendant(expr(hasSideEffect(CheckFunctionCalls)));
tools/clang/tools/extra/clang-tidy/bugprone/InfiniteLoopCheck.cpp
  159       unless(hasBody(hasDescendant(
tools/clang/tools/extra/clang-tidy/bugprone/MisplacedOperatorInStrlenInAllocCheck.cpp
   41             hasDescendant(BadUse)),
tools/clang/tools/extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp
  532             hasAncestor(compoundStmt(hasDescendant(binaryOperator(
  552   auto HasIncOp = anyOf(ignoringImpCasts(IncOp), hasDescendant(IncOp));
  553   auto HasDecOp = anyOf(ignoringImpCasts(DecOp), hasDescendant(DecOp));
  555   auto Container = ignoringImpCasts(cxxMemberCallExpr(hasDescendant(declRefExpr(
  593       ignoringImpCasts(anyOf(Strlen, SizeOrLength, hasDescendant(Strlen),
  594                              hasDescendant(SizeOrLength)));
  629                           hasDescendant(callExpr(MallocLengthExpr)));
  650                                       hasDescendant(DestArrayTyDecl))),
  652             anyOf(DestUnknownDecl, hasDescendant(DestUnknownDecl))));
  655       hasLHS(anyOf(hasDescendant(declRefExpr(
  657                    hasDescendant(declRefExpr(equalsBoundNode(DestExprName))))),
  668                              hasDescendant(stringLiteral().bind(SrcExprName)),
  669                              SrcDecl, hasDescendant(SrcDecl)));
  693                                  hasDescendant(NullTerminatorExpr)))),
tools/clang/tools/extra/clang-tidy/bugprone/ParentVirtualCallCheck.cpp
   87           callee(memberExpr(hasDescendant(implicitCastExpr(
tools/clang/tools/extra/clang-tidy/bugprone/UnhandledSelfAssignmentCheck.cpp
   46   const auto HasNoSelfCheck = cxxMethodDecl(unless(hasDescendant(
   55       hasDescendant(cxxConstructExpr(hasDeclaration(cxxConstructorDecl(
   63       anyOf(hasDescendant(
   65                         hasDescendant(parenListExpr()))),
   66             hasDescendant(cxxUnresolvedConstructExpr(hasDescendant(declRefExpr(
   66             hasDescendant(cxxUnresolvedConstructExpr(hasDescendant(declRefExpr(
   73       cxxMethodDecl(unless(hasDescendant(cxxMemberCallExpr(callee(cxxMethodDecl(
tools/clang/tools/extra/clang-tidy/bugprone/UnusedRaiiCheck.cpp
   83       match(expr(hasDescendant(typeLoc().bind("t"))), *E, *Result.Context);
tools/clang/tools/extra/clang-tidy/bugprone/UseAfterMoveCheck.cpp
  297                declStmt(hasDescendant(equalsNode(MovedVariable))),
tools/clang/tools/extra/clang-tidy/cert/ProperlySeededRandomGeneratorCheck.cpp
   53                          unless(hasDescendant(cxxThisExpr())))))
tools/clang/tools/extra/clang-tidy/cert/StaticObjectExceptionCheck.cpp
   30               anyOf(hasDescendant(cxxConstructExpr(hasDeclaration(
   32                     hasDescendant(cxxNewExpr(hasDeclaration(
   34                     hasDescendant(callExpr(hasDeclaration(
tools/clang/tools/extra/clang-tidy/cppcoreguidelines/InterfacesGlobalInitCheck.cpp
   32               hasInitializer(expr(hasDescendant(ReferencesUndefinedGlobalVar))))
tools/clang/tools/extra/clang-tidy/cppcoreguidelines/OwningMemoryCheck.cpp
   76           hasDescendant(
  160       functionDecl(hasDescendant(returnStmt(hasReturnValue(ConsideredOwner))
tools/clang/tools/extra/clang-tidy/cppcoreguidelines/ProBoundsArrayToPointerDecayCheck.cpp
   30                   hasRangeBeginEndStmt(hasDescendant(equalsNode(&Node))))))
tools/clang/tools/extra/clang-tidy/fuchsia/StaticallyConstructedObjectsCheck.cpp
   40                          hasDescendant(cxxConstructExpr(unless(allOf(
tools/clang/tools/extra/clang-tidy/linuxkernel/MustCheckErrsCheck.cpp
   29   auto ReturnsErrFn = functionDecl(hasDescendant(ReturnToCheck));
tools/clang/tools/extra/clang-tidy/misc/RedundantExpressionCheck.cpp
  660                      unless(hasDescendant(BannedIntegerLiteral)))
tools/clang/tools/extra/clang-tidy/modernize/LoopConvertCheck.cpp
  138                                    hasDescendant(BeginCallMatcher))))
tools/clang/tools/extra/clang-tidy/modernize/ReturnBracedInitListCheck.cpp
   30                        isListInitialization(), hasDescendant(initListExpr()),
   40                    hasDescendant(returnStmt(hasReturnValue(
tools/clang/tools/extra/clang-tidy/modernize/ShrinkToFitCheck.cpp
   48           has(ignoringParenImpCasts(memberExpr(hasDescendant(CopyCtorCall)))),
tools/clang/tools/extra/clang-tidy/modernize/UseAutoCheck.cpp
  310                                hasType(qualType(hasDescendant(autoType()))))))),
tools/clang/tools/extra/clang-tidy/modernize/UseNullptrCheck.cpp
   45                         explicitCastExpr(hasDescendant(ImplicitCastToNull))),
tools/clang/tools/extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp
  381   Finder->addMatcher(friendDecl(hasDescendant(F)).bind("Friend"), this);
tools/clang/tools/extra/clang-tidy/performance/FasterStringFindCheck.cpp
   45                                 hasDescendant(substTemplateTypeParmType()))));
tools/clang/tools/extra/clang-tidy/performance/ForRangeCopyCheck.cpp
   44       unless(hasInitializer(expr(hasDescendant(materializeTemporaryExpr())))));
tools/clang/tools/extra/clang-tidy/performance/ImplicitConversionInLoopCheck.cpp
   54                   expr(anyOf(hasDescendant(
   56                              hasDescendant(unaryOperator(hasOperatorName("*"))
tools/clang/tools/extra/clang-tidy/performance/InefficientStringConcatenationCheck.cpp
   46           hasDescendant(BasicStringPlusOperator))
   54       hasArgument(1, stmt(hasDescendant(declRefExpr(
   56       hasDescendant(BasicStringPlusOperator));
tools/clang/tools/extra/clang-tidy/performance/InefficientVectorOperationCheck.cpp
  131               hasRHS(expr(unless(hasDescendant(expr(RefersToLoopVar))))
tools/clang/tools/extra/clang-tidy/readability/ImplicitBoolConversionCheck.cpp
  310   auto bitfieldConstruct = cxxConstructorDecl(hasDescendant(cxxCtorInitializer(
tools/clang/tools/extra/clang-tidy/readability/SimplifySubscriptExprCheck.cpp
   43                                hasDescendant(substTemplateTypeParmType()))),
tools/clang/tools/extra/clang-tidy/readability/UniqueptrDeleteReleaseCheck.cpp
   22       substTemplateTypeParmType(), hasDescendant(substTemplateTypeParmType())));
tools/clang/tools/extra/clang-tidy/utils/DeclRefExprUtils.cpp
  146       decl(hasDescendant(
  160       decl(hasDescendant(
tools/clang/unittests/AST/ASTImporterTest.cpp
  467       functionDecl(hasDescendant(
  472       functionDecl(hasDescendant(
  477       functionDecl(hasDescendant(
  489     functionDecl(hasDescendant(chooseExpr())));
  497       functionDecl(hasDescendant(gnuNullExpr(hasType(isInteger())))));
  505       functionDecl(hasDescendant(cxxNullPtrLiteralExpr())));
  514       functionDecl(hasDescendant(
  519       functionDecl(hasDescendant(
  528       functionDecl(hasDescendant(imaginaryLiteral())));
  538       functionDecl(hasDescendant(
  558               hasDescendant(
  569       functionDecl(hasDescendant(
  583           hasDescendant(
  585           hasDescendant(
  617       functionDecl(hasDescendant(
  626     functionDecl(hasDescendant(
  638                     hasDescendant(
  647       functionDecl(hasDescendant(
  661       functionDecl(hasDescendant(
  685       functionDecl(hasDescendant(
  689                   hasDescendant(floatLiteral(equals(1.0))),
  690                   hasDescendant(integerLiteral(equals(2))))),
  693                   hasDescendant(floatLiteral(equals(2.0))),
  694                   hasDescendant(integerLiteral(equals(2))))),
  697                   hasDescendant(floatLiteral(equals(1.0))),
  698                   hasDescendant(integerLiteral(equals(0)))))))));
  707       functionDecl(hasDescendant(
  723       functionDecl(hasDescendant(
  750       functionDecl(hasDescendant(
  760       functionDecl(hasDescendant(
  771       functionDecl(hasDescendant(typedefDecl(has(atomicType())))));
  792       functionTemplateDecl(hasDescendant(
  802       functionTemplateDecl(hasDescendant(
  815           hasDescendant(implicitCastExpr(has(declRefExpr()))),
  830           hasDescendant(declRefExpr(to(varTemplateSpecializationDecl()))),
  845       functionDecl(hasDescendant(
  879           functionTemplateDecl(hasDescendant(sizeOfPackExpr())));
  909       functionDecl(hasDescendant(typeTraitExpr(hasType(asString("int"))))));
  924           hasDescendant(varDecl(
  925               hasName("a"), hasInitializer(hasDescendant(cxxTypeidExpr())))),
  926           hasDescendant(varDecl(
  927               hasName("b"), hasInitializer(hasDescendant(cxxTypeidExpr()))))));
  939           functionDecl(hasDescendant(
  994                        hasDescendant(unaryExprOrTypeTraitExpr()))));
 1023       functionDecl(hasDescendant(
 1033       functionDecl(hasDescendant(usingDecl())));
 1068       functionTemplateDecl(hasDescendant(unresolvedLookupExpr())));
 1081       functionTemplateDecl(hasDescendant(
 1091           functionTemplateDecl(hasDescendant(
 1135       cxxRecordDecl(has(cxxMethodDecl(hasDescendant(
 2389       ToD, functionDecl(hasName("f"), hasDescendant(declRefExpr()))));
 2416       ToTU, translationUnitDecl(hasDescendant(
 2417                 functionDecl(hasName("f"), hasDescendant(declRefExpr()))))));
tools/clang/unittests/AST/DeclPrinterTest.cpp
 1300               hasDescendant(namedDecl(hasName("printThis")))).bind("id"),
tools/clang/unittests/AST/OMPStructuredBlockTest.cpp
   35               unless(hasDescendant(stmt(isOMPStructuredBlock()))))
tools/clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp
  193       hasDescendant(recordDecl(hasName("X"))),
  208       hasDescendant(recordDecl(has(recordDecl(hasName("Y"))),
  231       hasDescendant(recordDecl(hasDescendant(recordDecl(hasName("Y"))),
  231       hasDescendant(recordDecl(hasDescendant(recordDecl(hasName("Y"))),
  252     decl(hasDescendant(typeLoc().bind("x")), has(decl()));
  262                          decl(hasDescendant(VD), hasDescendant(RD))));
  262                          decl(hasDescendant(VD), hasDescendant(RD))));
  264                          decl(hasDescendant(RD), hasDescendant(VD))));
  264                          decl(hasDescendant(RD), hasDescendant(VD))));
  267                       decl(anyOf(hasDescendant(RD), hasDescendant(VD)))));
  267                       decl(anyOf(hasDescendant(RD), hasDescendant(VD)))));
  322             cxxCatchStmt(anyOf(hasDescendant(varDecl()), isCatchAll()))));
  735       recordDecl(hasName("A"), hasDescendant(ClassX)),
  736       recordDecl(hasName("B"), hasDescendant(ClassX)))),
  796             cxxOperatorCallExpr(hasDescendant(cxxOperatorCallExpr()))));
 1850     cxxRecordDecl(isTemplateInstantiation(), hasDescendant(
 1865     cxxRecordDecl(isTemplateInstantiation(), hasDescendant(
 1874                             unless(hasDescendant(varDecl(hasName("t")))))));
 2366       unless(hasAncestor(stmt(hasDescendant(cxxMemberCallExpr(
 2382       unless(hasAncestor(stmt(hasDescendant(cxxMemberCallExpr(
tools/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp
  133                                            hasDescendant(fieldDecl(hasName("a"))))));
  140                                            hasDescendant(fieldDecl(hasName("a"))))));
  550                                     hasDescendant(declRefExpr(to(
  801                                    hasDescendant(floatLiteral(
  803                                    hasDescendant(integerLiteral(
  808                                    hasDescendant(floatLiteral(
  810                                    hasDescendant(integerLiteral(
  815                                    hasDescendant(floatLiteral(
  817                                    hasDescendant(integerLiteral(
tools/clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
   67                       decl(hasDescendant(loc(builtinType())))));
   69                       stmt(hasDescendant(builtinType()))));
   72                       stmt(hasDescendant(loc(builtinType())))));
   74                       stmt(hasDescendant(qualType(builtinType())))));
   77                          stmt(hasDescendant(isInteger()))));
   82       varDecl(hasDescendant(isInteger())).bind("x"))),
   88                       qualType(hasDescendant(builtinType()))));
   90                       qualType(hasDescendant(
   93                       typeLoc(hasDescendant(loc(builtinType())))));
  136          hasDescendant(declRefExpr(to(varDecl(hasName("i"))))));
  838       hasDescendant(declRefExpr(to(fieldDecl(hasName("next"))))))))));
 1330     recordDecl(hasName("C"), hasDescendant(callExpr(
 1750                         hasSourceExpression(hasDescendant(
 1934     recordDecl(hasName("A"), allOf(hasDescendant(m), anyOf(m, anything()))),
 2148         hasDescendant(recordDecl(isDefinition(),
 2383                         hasDescendant(nestedNameSpecifier(
 2411     decl(hasDescendant(nestedNameSpecifier(specifiesType(
 2428                            hasDescendant(loc(nestedNameSpecifier(
 2454     decl(hasDescendant(loc(nestedNameSpecifier(specifiesType(
 2487       "X", decl(hasDescendant(recordDecl(hasName("X::Y")).bind("Y"))),
 2492       "X", decl(hasDescendant(recordDecl(hasName("X::Z")).bind("Z"))),
 2500       "if", stmt(hasDescendant(forStmt().bind("for"))), "for")));
 2504       "if", stmt(hasDescendant(declStmt().bind("decl"))), "decl")));
tools/clang/unittests/StaticAnalyzer/Reusables.h
   24   auto Matches = match(decl(hasDescendant(What.bind("root"))),
tools/clang/unittests/Tooling/RangeSelectorTest.cpp
   98           hasDescendant(
  101                       decl(hasDescendant(cxxCtorInitializer(isBaseInitializer())
tools/clang/unittests/Tooling/SourceCodeBuildersTest.cpp
   36                  hasDescendant(compoundStmt(hasAnySubstatement(Matcher))));
tools/clang/unittests/Tooling/StencilTest.cpp
   40                  hasDescendant(compoundStmt(hasAnySubstatement(Matcher))));
   90         stmt(hasDescendant(
   92                      hasDeclaration(decl(hasDescendant(cxxCtorInitializer(