clang 20.0.0git
|
Specialization of RecursiveASTVisitor
that visits those nodes that are relevant to the dataflow analysis; generally, these are the ones that also appear in the CFG.
More...
#include "clang/Analysis/FlowSensitive/ASTOps.h"
Public Member Functions | |
AnalysisASTVisitor () | |
bool | TraverseDecl (Decl *D) override |
Recursively visit a declaration, by dispatching to Traverse*Decl() based on the argument's dynamic type. | |
bool | TraverseDecltypeTypeLoc (DecltypeTypeLoc) override |
bool | TraverseTypeOfExprTypeLoc (TypeOfExprTypeLoc) override |
bool | TraverseCXXTypeidExpr (CXXTypeidExpr *TIE) override |
bool | TraverseUnaryExprOrTypeTraitExpr (UnaryExprOrTypeTraitExpr *) override |
bool | TraverseBindingDecl (BindingDecl *BD) override |
Public Member Functions inherited from clang::DynamicRecursiveASTVisitor | |
virtual void | anchor () |
virtual | ~DynamicRecursiveASTVisitor ()=default |
virtual bool | TraverseAST (ASTContext &AST) |
Recursively visits an entire AST, starting from the TranslationUnitDecl. | |
virtual bool | TraverseAttr (Attr *At) |
Recursively visit an attribute, by dispatching to Traverse*Attr() based on the argument's dynamic type. | |
virtual bool | TraverseConstructorInitializer (CXXCtorInitializer *Init) |
Recursively visit a constructor initializer. | |
virtual bool | TraverseCXXBaseSpecifier (const CXXBaseSpecifier &Base) |
Recursively visit a base specifier. | |
virtual bool | TraverseDecl (Decl *D) |
Recursively visit a declaration, by dispatching to Traverse*Decl() based on the argument's dynamic type. | |
virtual bool | TraverseDeclarationNameInfo (DeclarationNameInfo NameInfo) |
Recursively visit a name with its location information. | |
virtual bool | TraverseLambdaCapture (LambdaExpr *LE, const LambdaCapture *C, Expr *Init) |
Recursively visit a lambda capture. | |
virtual bool | TraverseNestedNameSpecifier (NestedNameSpecifier *NNS) |
Recursively visit a C++ nested-name-specifier. | |
virtual bool | TraverseNestedNameSpecifierLoc (NestedNameSpecifierLoc NNS) |
Recursively visit a C++ nested-name-specifier with location information. | |
virtual bool | TraverseStmt (Stmt *S) |
Recursively visit a statement or expression, by dispatching to Traverse*() based on the argument's dynamic type. | |
virtual bool | TraverseTemplateArgument (const TemplateArgument &Arg) |
Recursively visit a template argument and dispatch to the appropriate method for the argument type. | |
virtual bool | TraverseTemplateArgumentLoc (const TemplateArgumentLoc &ArgLoc) |
Recursively visit a template argument location and dispatch to the appropriate method for the argument type. | |
bool | TraverseTemplateArguments (ArrayRef< TemplateArgument > Args) |
Recursively visit a set of template arguments. | |
virtual bool | TraverseTemplateName (TemplateName Template) |
Recursively visit a template name and dispatch to the appropriate method. | |
virtual bool | TraverseType (QualType T) |
Recursively visit a type, by dispatching to Traverse*Type() based on the argument's getTypeClass() property. | |
virtual bool | TraverseTypeLoc (TypeLoc TL) |
Recursively visit a type with location, by dispatching to Traverse*TypeLoc() based on the argument type's getTypeClass() property. | |
virtual bool | TraverseObjCProtocolLoc (ObjCProtocolLoc ProtocolLoc) |
Recursively visit an Objective-C protocol reference with location information. | |
virtual bool | TraverseTypeConstraint (const TypeConstraint *C) |
Traverse a concept (requirement). | |
virtual bool | TraverseConceptRequirement (concepts::Requirement *R) |
virtual bool | TraverseConceptTypeRequirement (concepts::TypeRequirement *R) |
virtual bool | TraverseConceptExprRequirement (concepts::ExprRequirement *R) |
virtual bool | TraverseConceptNestedRequirement (concepts::NestedRequirement *R) |
virtual bool | TraverseConceptReference (ConceptReference *CR) |
virtual bool | VisitConceptReference (ConceptReference *CR) |
virtual bool | VisitAttr (Attr *A) |
Visit a node. | |
virtual bool | VisitDecl (Decl *D) |
virtual bool | VisitStmt (Stmt *S) |
virtual bool | VisitType (Type *T) |
virtual bool | VisitTypeLoc (TypeLoc TL) |
bool | WalkUpFromDecl (Decl *D) |
Walk up from a node. | |
bool | WalkUpFromStmt (Stmt *S) |
bool | WalkUpFromType (Type *T) |
bool | WalkUpFromTypeLoc (TypeLoc TL) |
virtual bool | dataTraverseStmtPre (Stmt *S) |
Invoked before visiting a statement or expression via data recursion. | |
virtual bool | dataTraverseStmtPost (Stmt *S) |
Invoked after visiting a statement or expression via data recursion. | |
virtual bool | dataTraverseNode (Stmt *S) |
Additional Inherited Members | |
Public Attributes inherited from clang::DynamicRecursiveASTVisitor | |
bool | ShouldVisitTemplateInstantiations = false |
Whether this visitor should recurse into template instantiations. | |
bool | ShouldWalkTypesOfTypeLocs = true |
Whether this visitor should recurse into the types of TypeLocs. | |
bool | ShouldVisitImplicitCode = false |
Whether this visitor should recurse into implicit code, e.g. | |
bool | ShouldVisitLambdaBody = true |
Whether this visitor should recurse into lambda body. | |
Protected Member Functions inherited from clang::DynamicRecursiveASTVisitor | |
DynamicRecursiveASTVisitor ()=default | |
DynamicRecursiveASTVisitor (DynamicRecursiveASTVisitor &&)=default | |
DynamicRecursiveASTVisitor (const DynamicRecursiveASTVisitor &)=default | |
DynamicRecursiveASTVisitor & | operator= (DynamicRecursiveASTVisitor &&)=default |
DynamicRecursiveASTVisitor & | operator= (const DynamicRecursiveASTVisitor &)=default |
Specialization of RecursiveASTVisitor
that visits those nodes that are relevant to the dataflow analysis; generally, these are the ones that also appear in the CFG.
To start the traversal, call TraverseStmt()
on the statement or body of the function to analyze. Don't call TraverseDecl()
on the function itself; this won't work as TraverseDecl()
contains code to avoid traversing nested functions.
|
inline |
Definition at line 94 of file ASTOps.h.
References clang::DynamicRecursiveASTVisitor::ShouldVisitImplicitCode, and clang::DynamicRecursiveASTVisitor::ShouldVisitLambdaBody.
|
inlineoverride |
Definition at line 126 of file ASTOps.h.
References clang::BindingDecl::getHoldingVar(), and TraverseDecl().
|
inlineoverride |
Definition at line 117 of file ASTOps.h.
References clang::CXXTypeidExpr::isPotentiallyEvaluated().
Recursively visit a declaration, by dispatching to Traverse*Decl() based on the argument's dynamic type.
Reimplemented from clang::DynamicRecursiveASTVisitor.
Definition at line 99 of file ASTOps.h.
References D, and clang::DynamicRecursiveASTVisitor::TraverseDecl().
Referenced by TraverseBindingDecl().
|
inlineoverride |
|
inlineoverride |
|
inlineoverride |