aboutsummaryrefslogtreecommitdiff
path: root/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h
diff options
context:
space:
mode:
Diffstat (limited to 'clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h')
-rw-r--r--clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h17
1 files changed, 12 insertions, 5 deletions
diff --git a/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h b/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h
index bdd12a3ffe33..9a34639e2707 100644
--- a/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h
+++ b/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h
@@ -39,7 +39,7 @@ class CallEvent;
class CallEventManager;
typedef std::unique_ptr<ConstraintManager>(*ConstraintManagerCreator)(
- ProgramStateManager &, SubEngine *);
+ ProgramStateManager &, ExprEngine *);
typedef std::unique_ptr<StoreManager>(*StoreManagerCreator)(
ProgramStateManager &);
@@ -298,6 +298,9 @@ public:
LLVM_NODISCARD ProgramStateRef enterStackFrame(
const CallEvent &Call, const StackFrameContext *CalleeCtx) const;
+ /// Return the value of 'self' if available in the given context.
+ SVal getSelfSVal(const LocationContext *LC) const;
+
/// Get the lvalue for a base class object reference.
Loc getLValue(const CXXBaseSpecifier &BaseSpec, const SubRegion *Super) const;
@@ -305,6 +308,10 @@ public:
Loc getLValue(const CXXRecordDecl *BaseClass, const SubRegion *Super,
bool IsVirtual) const;
+ /// Get the lvalue for a parameter.
+ Loc getLValue(const Expr *Call, unsigned Index,
+ const LocationContext *LC) const;
+
/// Get the lvalue for a variable reference.
Loc getLValue(const VarDecl *D, const LocationContext *LC) const;
@@ -457,8 +464,8 @@ class ProgramStateManager {
friend class ProgramState;
friend void ProgramStateRelease(const ProgramState *state);
private:
- /// Eng - The SubEngine that owns this state manager.
- SubEngine *Eng; /* Can be null. */
+ /// Eng - The ExprEngine that owns this state manager.
+ ExprEngine *Eng; /* Can be null. */
EnvironmentManager EnvMgr;
std::unique_ptr<StoreManager> StoreMgr;
@@ -490,7 +497,7 @@ public:
StoreManagerCreator CreateStoreManager,
ConstraintManagerCreator CreateConstraintManager,
llvm::BumpPtrAllocator& alloc,
- SubEngine *subeng);
+ ExprEngine *expreng);
~ProgramStateManager();
@@ -531,7 +538,7 @@ public:
StoreManager &getStoreManager() { return *StoreMgr; }
ConstraintManager &getConstraintManager() { return *ConstraintMgr; }
- SubEngine &getOwningEngine() { return *Eng; }
+ ExprEngine &getOwningEngine() { return *Eng; }
ProgramStateRef
removeDeadBindingsFromEnvironmentAndStore(ProgramStateRef St,