diff options
-rw-r--r-- | include/clang/Analysis/PathSensitive/GRState.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/include/clang/Analysis/PathSensitive/GRState.h b/include/clang/Analysis/PathSensitive/GRState.h index b1e866c67c..0e72742e63 100644 --- a/include/clang/Analysis/PathSensitive/GRState.h +++ b/include/clang/Analysis/PathSensitive/GRState.h @@ -162,6 +162,12 @@ public: return GRStateTrait<T>::Lookup(GRStateTrait<T>::MakeData(d), key); } + template<typename T> + bool contains(typename GRStateTrait<T>::key_type key) const { + void* const* d = FindGDM(GRStateTrait<T>::GDMIndex()); + return GRStateTrait<T>::Contains(GRStateTrait<T>::MakeData(d), key); + } + // State pretty-printing. class Printer { public: @@ -623,7 +629,7 @@ public: template <typename T> typename GRStateTrait<T>::context_type get_context() { return Mgr->get_context<T>(); - } + } template<typename T> GRStateRef set(typename GRStateTrait<T>::key_type K, @@ -649,6 +655,11 @@ public: return GRStateRef(Mgr->remove<T>(St, K, get_context<T>()), *Mgr); } + template<typename T> + bool contains(typename GRStateTrait<T>::key_type key) const { + return St->contains(key); + } + // Lvalue methods. SVal GetLValue(const VarDecl* VD) { return Mgr->GetLValue(St, VD); |