clang 20.0.0git
Public Member Functions | List of all members
ForVarDeclFinder Class Reference

Look for variables declared in the body parts of a for-loop nest. More...

Inheritance diagram for ForVarDeclFinder:
Inheritance graph
[legend]

Public Member Functions

 ForVarDeclFinder (llvm::SmallPtrSetImpl< const Decl * > &VD)
 
bool VisitForStmt (ForStmt *F) override
 
bool VisitCXXForRangeStmt (CXXForRangeStmt *RF) override
 
bool VisitVarDecl (VarDecl *D) 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
 
DynamicRecursiveASTVisitoroperator= (DynamicRecursiveASTVisitor &&)=default
 
DynamicRecursiveASTVisitoroperator= (const DynamicRecursiveASTVisitor &)=default
 

Detailed Description

Look for variables declared in the body parts of a for-loop nest.

Used for verifying loop nest structure before performing a loop collapse operation.

Definition at line 9581 of file SemaOpenMP.cpp.

Constructor & Destructor Documentation

◆ ForVarDeclFinder()

ForVarDeclFinder::ForVarDeclFinder ( llvm::SmallPtrSetImpl< const Decl * > &  VD)
inlineexplicit

Definition at line 9586 of file SemaOpenMP.cpp.

Member Function Documentation

◆ VisitCXXForRangeStmt()

bool ForVarDeclFinder::VisitCXXForRangeStmt ( CXXForRangeStmt RF)
inlineoverride

Definition at line 9596 of file SemaOpenMP.cpp.

References clang::CXXForRangeStmt::getBody().

◆ VisitForStmt()

bool ForVarDeclFinder::VisitForStmt ( ForStmt F)
inlineoverride

Definition at line 9589 of file SemaOpenMP.cpp.

References clang::ForStmt::getBody().

◆ VisitVarDecl()

bool ForVarDeclFinder::VisitVarDecl ( VarDecl D)
inlineoverride

Definition at line 9603 of file SemaOpenMP.cpp.

References clang::C, D, and clang::Decl::getCanonicalDecl().


The documentation for this class was generated from the following file: