|
static llvm::DenseMap< const ValueDecl *, StorageLocation * > | clang::dataflow::intersectDeclToLoc (const llvm::DenseMap< const ValueDecl *, StorageLocation * > &DeclToLoc1, const llvm::DenseMap< const ValueDecl *, StorageLocation * > &DeclToLoc2) |
| Returns a map consisting of key-value entries that are present in both maps.
|
|
static bool | clang::dataflow::equateUnknownValues (Value::Kind K) |
|
static bool | clang::dataflow::compareDistinctValues (QualType Type, Value &Val1, const Environment &Env1, Value &Val2, const Environment &Env2, Environment::ValueModel &Model) |
|
static Value * | clang::dataflow::mergeDistinctValues (QualType Type, Value &Val1, const Environment &Env1, Value &Val2, const Environment &Env2, Environment &MergedEnv, Environment::ValueModel &Model) |
| Attempts to merge distinct values Val1 and Val2 in Env1 and Env2 , respectively, of the same type Type .
|
|
static Value & | clang::dataflow::widenDistinctValues (QualType Type, Value &Prev, const Environment &PrevEnv, Value &Current, Environment &CurrentEnv, Environment::ValueModel &Model) |
|
template<typename Key > |
bool | clang::dataflow::compareKeyToValueMaps (const llvm::MapVector< Key, Value * > &Map1, const llvm::MapVector< Key, Value * > &Map2, const Environment &Env1, const Environment &Env2, Environment::ValueModel &Model) |
|
static llvm::MapVector< const StorageLocation *, Value * > | clang::dataflow::joinLocToVal (const llvm::MapVector< const StorageLocation *, Value * > &LocToVal, const llvm::MapVector< const StorageLocation *, Value * > &LocToVal2, const Environment &Env1, const Environment &Env2, Environment &JoinedEnv, Environment::ValueModel &Model) |
|
template<typename Key > |
llvm::MapVector< Key, Value * > | clang::dataflow::widenKeyToValueMap (const llvm::MapVector< Key, Value * > &CurMap, const llvm::MapVector< Key, Value * > &PrevMap, Environment &CurEnv, const Environment &PrevEnv, Environment::ValueModel &Model, LatticeJoinEffect &Effect) |
|
static void | clang::dataflow::insertIfGlobal (const Decl &D, llvm::DenseSet< const VarDecl * > &Vars) |
| Initializes a global storage value.
|
|
static void | clang::dataflow::insertIfFunction (const Decl &D, llvm::DenseSet< const FunctionDecl * > &Funcs) |
|
static MemberExpr * | clang::dataflow::getMemberForAccessor (const CXXMemberCallExpr &C) |
|
static void | clang::dataflow::getFieldsGlobalsAndFuncs (const Decl &D, FieldSet &Fields, llvm::DenseSet< const VarDecl * > &Vars, llvm::DenseSet< const FunctionDecl * > &Funcs) |
|
static void | clang::dataflow::getFieldsGlobalsAndFuncs (const Stmt &S, FieldSet &Fields, llvm::DenseSet< const VarDecl * > &Vars, llvm::DenseSet< const FunctionDecl * > &Funcs) |
| Traverses S and inserts into Fields , Vars and Funcs any fields, global variables and functions that are declared in or referenced from sub-statements.
|
|
RecordStorageLocation * | clang::dataflow::getImplicitObjectLocation (const CXXMemberCallExpr &MCE, const Environment &Env) |
| Returns the storage location for the implicit object of a CXXMemberCallExpr , or null if none is defined in the environment.
|
|
RecordStorageLocation * | clang::dataflow::getBaseObjectLocation (const MemberExpr &ME, const Environment &Env) |
| Returns the storage location for the base object of a MemberExpr , or null if none is defined in the environment.
|
|
std::vector< FieldDecl * > | clang::dataflow::getFieldsForInitListExpr (const RecordDecl *RD) |
| Returns the fields of RD that are initialized by an InitListExpr , in the order in which they appear in InitListExpr::inits() .
|
|
RecordValue & | clang::dataflow::refreshRecordValue (RecordStorageLocation &Loc, Environment &Env) |
| Associates a new RecordValue with Loc and returns the new value.
|
|
RecordValue & | clang::dataflow::refreshRecordValue (const Expr &Expr, Environment &Env) |
| Associates a new RecordValue with Expr and returns the new value.
|
|