diff options
Diffstat (limited to 'include/clang/StaticAnalyzer/Core/PathSensitive')
-rw-r--r-- | include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h b/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h index 31d02f51ea..03e84447e7 100644 --- a/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h +++ b/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h @@ -219,7 +219,7 @@ public: private: friend class SVal; - static bool isKind(const SVal& V) { + static bool isKind(const SVal &V) { return V.getBaseKind() == UnknownKind; } }; @@ -242,6 +242,19 @@ private: } }; + +/// \brief Represents an SVal that is guaranteed to not be UnknownVal. +class KnownSVal : public SVal { + KnownSVal() {} + friend class SVal; + static bool isKind(const SVal &V) { + return !V.isUnknown(); + } +public: + KnownSVal(const DefinedSVal &V) : SVal(V) {} + KnownSVal(const UndefinedVal &V) : SVal(V) {} +}; + class NonLoc : public DefinedSVal { protected: NonLoc() {} |