13 #ifndef LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_ENVIRONMENT_H 14 #define LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_ENVIRONMENT_H 19 #include "llvm/ADT/ImmutableMap.h" 36 const StackFrameContext *> {
60 using BindingsTy = llvm::ImmutableMap<EnvironmentEntry, SVal>;
62 BindingsTy ExprBindings;
81 env->ExprBindings.Profile(ID);
91 return ExprBindings == RHS.ExprBindings;
94 void printJson(raw_ostream &Out,
const ASTContext &Ctx,
96 unsigned int Space = 0,
bool IsDot =
false)
const;
101 using FactoryTy = Environment::BindingsTy::Factory;
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
Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...
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