14 #ifndef LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_ENVIRONMENT_H 15 #define LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_ENVIRONMENT_H 19 #include "llvm/ADT/ImmutableMap.h" 27 class EnvironmentManager;
36 const StackFrameContext *> {
64 BindingsTy ExprBindings;
73 iterator
begin()
const {
return ExprBindings.begin(); }
74 iterator
end()
const {
return ExprBindings.end(); }
83 env->ExprBindings.Profile(ID);
93 return ExprBindings == RHS.ExprBindings;
96 void print(raw_ostream &Out,
const char *NL,
const char *Sep)
const;
99 void printAux(raw_ostream &Out,
bool printLocations,
100 const char *NL,
const char *Sep)
const;
105 typedef Environment::BindingsTy::Factory FactoryTy;
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
const LocationContext * getLocationContext() const