13#ifndef LLVM_CLANG_ANALYSIS_FLOWSENSITIVE_ASTOPS_H
14#define LLVM_CLANG_ANALYSIS_FLOWSENSITIVE_ASTOPS_H
21#include "llvm/ADT/DenseSet.h"
22#include "llvm/ADT/SetVector.h"
81 std::optional<ImplicitValueInitExpr> ImplicitValueInitForUnion;
91template <
class Derived>
104 if (isa_and_nonnull<RecordDecl>(
D) || isa_and_nonnull<FunctionDecl>(
D))
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.
Represents a function declaration or definition.
Describes an C or C++ initializer list.
A (possibly-)qualified type.
A class that does preorder or postorder depth-first traversal on the entire Clang AST and visits each...
bool TraverseDecl(Decl *D)
Recursively visit a declaration, by dispatching to Traverse*Decl() based on the argument's dynamic ty...
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.
Specialization of RecursiveASTVisitor that visits those nodes that are relevant to the dataflow analy...
bool TraverseDecltypeTypeLoc(DecltypeTypeLoc)
bool shouldVisitLambdaBody() const
bool TraverseCXXTypeidExpr(CXXTypeidExpr *TIE)
bool shouldVisitImplicitCode()
bool TraverseBindingDecl(BindingDecl *BD)
bool TraverseDecl(Decl *D)
bool TraverseTypeOfExprTypeLoc(TypeOfExprTypeLoc)
bool TraverseUnaryExprOrTypeTraitExpr(UnaryExprOrTypeTraitExpr *)
Helper class for initialization of a record with an InitListExpr.
ArrayRef< std::pair< const FieldDecl *, Expr * > > field_inits() const
ArrayRef< std::pair< const CXXBaseSpecifier *, Expr * > > base_inits() const
llvm::DenseMap< const ValueDecl *, StorageLocation * > FieldToLoc
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.
The JSON file list parser is used to communicate input to InstallAPI.
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 FunctionDecl * > Functions
Free functions and member functions which are referenced (but not necessarily called).
FieldSet Fields
Non-static member variables.