clang  15.0.0git
Namespaces | Functions | Variables
DataflowEnvironment.cpp File Reference
#include "clang/Analysis/FlowSensitive/DataflowEnvironment.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/ExprCXX.h"
#include "clang/AST/Type.h"
#include "clang/Analysis/FlowSensitive/DataflowLattice.h"
#include "clang/Analysis/FlowSensitive/StorageLocation.h"
#include "clang/Analysis/FlowSensitive/Value.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/ErrorHandling.h"
#include <cassert>
#include <memory>
#include <utility>
Include dependency graph for DataflowEnvironment.cpp:

Go to the source code of this file.

Namespaces

 clang
 
 clang::dataflow
 Dataflow Directional Tag Classes.
 

Functions

template<typename K , typename V >
llvm::DenseMap< K, Vclang::dataflow::intersectDenseMaps (const llvm::DenseMap< K, V > &Map1, const llvm::DenseMap< K, V > &Map2)
 Returns a map consisting of key-value entries that are present in both maps. More...
 
static bool clang::dataflow::areEquivalentIndirectionValues (Value *Val1, Value *Val2)
 
static bool clang::dataflow::equivalentValues (QualType Type, Value *Val1, const Environment &Env1, Value *Val2, const Environment &Env2, Environment::ValueModel &Model)
 Returns true if and only if Val1 is equivalent to Val2. More...
 
static Valueclang::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. More...
 
static void clang::dataflow::initGlobalVar (const VarDecl &D, Environment &Env)
 Initializes a global storage value. More...
 
static void clang::dataflow::initGlobalVar (const Decl &D, Environment &Env)
 Initializes a global storage value. More...
 
static void clang::dataflow::initGlobalVars (const Stmt &S, Environment &Env)
 Initializes global storage values that are declared or referenced from sub-statements of S. More...
 

Variables

static constexpr int clang::dataflow::MaxCompositeValueDepth = 3
 
static constexpr int clang::dataflow::MaxCompositeValueSize = 1000