14 #ifndef LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_ENVIRONMENT_H 15 #define LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_ENVIRONMENT_H 20 #include "llvm/ADT/ImmutableMap.h" 37 const StackFrameContext *> {
61 using BindingsTy = llvm::ImmutableMap<EnvironmentEntry, SVal>;
63 BindingsTy ExprBindings;
82 env->ExprBindings.Profile(ID);
92 return ExprBindings == RHS.ExprBindings;
95 void print(raw_ostream &Out,
const char *NL,
const char *Sep,
125 #endif // LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_ENVIRONMENT_H
EnvironmentEntry(const Stmt *s, const LocationContext *L)
Stmt - This represents one statement.
void Profile(llvm::FoldingSetNodeID &ID) const
Profile - Used to profile the contents of this object for inclusion in a FoldingSet.
const Stmt * getStmt() const
void Profile(llvm::FoldingSetNodeID &ID) const
i32 captured_struct **param SharedsTy A type which contains references the shared variables *param Shareds Context with the list of shared variables from the p *TaskFunction *param Data Additional data for task generation like final * state
BindingsTy::iterator iterator
static void Profile(llvm::FoldingSetNodeID &ID, const EnvironmentEntry &E)
Profile an EnvironmentEntry for inclusion in a FoldingSet.
Environment getInitialEnvironment()
static void Profile(llvm::FoldingSetNodeID &ID, const Environment *env)
Profile - Profile the contents of an Environment object for use in a FoldingSet.
An entry in the environment consists of a Stmt and an LocationContext.
SVal - This represents a symbolic expression, which can be either an L-value or an R-value...
A class responsible for cleaning up unused symbols.
An immutable map from EnvironemntEntries to SVals.
Dataflow Directional Tag Classes.
EnvironmentManager(llvm::BumpPtrAllocator &Allocator)
bool operator==(const Environment &RHS) const
static llvm::ImmutableListFactory< const FieldRegion * > Factory
const LocationContext * getLocationContext() const