summaryrefslogtreecommitdiffstats
path: root/include/clang/Checker/PathSensitive/Store.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/clang/Checker/PathSensitive/Store.h')
-rw-r--r--include/clang/Checker/PathSensitive/Store.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/include/clang/Checker/PathSensitive/Store.h b/include/clang/Checker/PathSensitive/Store.h
index 41d7c2b..f3155b9 100644
--- a/include/clang/Checker/PathSensitive/Store.h
+++ b/include/clang/Checker/PathSensitive/Store.h
@@ -18,6 +18,7 @@
#include "clang/Checker/PathSensitive/SVals.h"
#include "clang/Checker/PathSensitive/ValueManager.h"
#include "llvm/ADT/DenseSet.h"
+#include "llvm/ADT/Optional.h"
namespace clang {
@@ -143,9 +144,9 @@ public:
return UnknownVal();
}
- virtual Store RemoveDeadBindings(Store store, Stmt* Loc,
- const StackFrameContext *LCtx,
- SymbolReaper& SymReaper,
+ virtual const GRState *RemoveDeadBindings(GRState &state, Stmt* Loc,
+ const StackFrameContext *LCtx,
+ SymbolReaper& SymReaper,
llvm::SmallVectorImpl<const MemRegion*>& RegionRoots) = 0;
virtual Store BindDecl(Store store, const VarRegion *VR, SVal initVal) = 0;
@@ -167,10 +168,15 @@ public:
// FIXME: Make out-of-line.
virtual const GRState *setExtent(const GRState *state,
- const MemRegion *region, SVal extent) {
+ const MemRegion *region, SVal extent) {
return state;
}
+ virtual llvm::Optional<SVal> getExtent(const GRState *state,
+ const MemRegion *R) {
+ return llvm::Optional<SVal>();
+ }
+
/// EnterStackFrame - Let the StoreManager to do something when execution
/// engine is about to execute into a callee.
virtual const GRState *EnterStackFrame(const GRState *state,
OpenPOWER on IntegriCloud