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 *> {
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)
bool operator==(const Environment &RHS) const
void print(raw_ostream &Out, const char *NL, const char *Sep) const
void Profile(llvm::FoldingSetNodeID &ID) const
Profile - Used to profile the contents of this object for inclusion in a FoldingSet.
SVal getSVal(const EnvironmentEntry &E, SValBuilder &svalBuilder) const
Fetches the current binding of the expression in the Environment.
Environment bindExpr(Environment Env, const EnvironmentEntry &E, SVal V, bool Invalidate)
Bind a symbolic value to the given environment entry.
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
void Profile(llvm::FoldingSetNodeID &ID) const
const Stmt * getStmt() const
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.
const TemplateArgument * iterator
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.
const LocationContext * getLocationContext() const
detail::InMemoryDirectory::const_iterator E
EnvironmentManager(llvm::BumpPtrAllocator &Allocator)
Environment removeDeadBindings(Environment Env, SymbolReaper &SymReaper, ProgramStateRef state)