13#ifndef LLVM_CLANG_ANALYSIS_FLOWSENSITIVE_ASTOPS_H
14#define LLVM_CLANG_ANALYSIS_FLOWSENSITIVE_ASTOPS_H
22#include "llvm/ADT/DenseSet.h"
23#include "llvm/ADT/SetVector.h"
82 std::optional<ImplicitValueInitExpr> ImplicitValueInitForUnion;
105 if (isa_and_nonnull<RecordDecl>(D) || isa_and_nonnull<FunctionDecl>(D))
116 bool TraverseQualifier)
override {
120 bool TraverseQualifier)
override {
125 return DynamicRecursiveASTVisitor::TraverseCXXTypeidExpr(TIE);
137 return DynamicRecursiveASTVisitor::TraverseBindingDecl(BD);
Defines the clang::Expr interface and subclasses for C++ expressions.
C Language Family Type Representation.
A binding in a decomposition declaration.
VarDecl * getHoldingVar() const
Get the variable (if any) that holds the value of evaluating the binding.
Represents a list-initialization with parenthesis.
A C++ typeid expression (C++ [expr.typeid]), which gets the type_info that corresponds to the supplie...
bool isPotentiallyEvaluated() const
Determine whether this typeid has a type operand which is potentially evaluated, per C++11 [expr....
Decl - This represents one declaration (or definition), e.g.
bool ShouldVisitLambdaBody
virtual bool TraverseDecl(MaybeConst< Decl > *D)
bool ShouldVisitImplicitCode
Represents a function declaration or definition.
Describes an C or C++ initializer list.
A (possibly-)qualified type.
Stmt - This represents one statement.
The base class of the type hierarchy.
UnaryExprOrTypeTraitExpr - expression with either a type or (unevaluated) expression operand.
Represents a variable declaration or definition.
bool TraverseUnaryExprOrTypeTraitExpr(UnaryExprOrTypeTraitExpr *) override
bool TraverseBindingDecl(BindingDecl *BD) override
bool TraverseTypeOfExprTypeLoc(TypeOfExprTypeLoc, bool TraverseQualifier) override
bool TraverseCXXTypeidExpr(CXXTypeidExpr *TIE) override
bool TraverseDecltypeTypeLoc(DecltypeTypeLoc, bool TraverseQualifier) override
bool TraverseDecl(Decl *D) override
ArrayRef< std::pair< const FieldDecl *, Expr * > > field_inits() const
RecordInitListHelper(const InitListExpr *InitList)
ArrayRef< std::pair< const CXXBaseSpecifier *, Expr * > > base_inits() const
llvm::DenseMap< const ValueDecl *, StorageLocation * > FieldToLoc
Dataflow Directional Tag Classes.
ReferencedDecls getReferencedDecls(const FunctionDecl &FD)
Returns declarations that are declared in or referenced from FD.
const Expr & ignoreCFGOmittedNodes(const Expr &E)
Skip past nodes that the CFG does not emit.
FieldSet getObjectFields(QualType Type)
Returns the set of all fields in the type.
bool containsSameFields(const FieldSet &Fields, const RecordStorageLocation::FieldToLoc &FieldLocs)
Returns whether Fields and FieldLocs contain the same fields.
llvm::SmallSetVector< const FieldDecl *, 4 > FieldSet
A set of FieldDecl *.
The JSON file list parser is used to communicate input to InstallAPI.
DynamicRecursiveASTVisitorBase< false > DynamicRecursiveASTVisitor
A collection of several types of declarations, all referenced from the same function.
llvm::DenseSet< const VarDecl * > Globals
All variables with static storage duration, notably including static member variables and static vari...
llvm::DenseSet< const VarDecl * > Locals
Local variables, not including parameters or static variables declared within a function.
llvm::DenseSet< const ParmVarDecl * > LambdaCapturedParams
When analyzing a lambda's call operator, the set of all parameters (from the surrounding function) th...
llvm::DenseSet< const FunctionDecl * > Functions
Free functions and member functions which are referenced (but not necessarily called).
FieldSet Fields
Non-static member variables.