diff options
Diffstat (limited to 'include/clang/Analysis/ProgramPoint.h')
-rw-r--r-- | include/clang/Analysis/ProgramPoint.h | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/include/clang/Analysis/ProgramPoint.h b/include/clang/Analysis/ProgramPoint.h index 0ea5365692..db3acf41a4 100644 --- a/include/clang/Analysis/ProgramPoint.h +++ b/include/clang/Analysis/ProgramPoint.h @@ -26,8 +26,9 @@ namespace clang { class ProgramPoint { public: enum Kind { BlockEdgeKind=0, BlockEntranceKind, BlockExitKind, - // Keep the following three together and in this order. - PostStmtKind, PostLoadKind, PostPurgeDeadSymbolsKind }; + // Keep the following four together and in this order. + PostStmtKind, PostLoadKind, PostStoreKind, + PostPurgeDeadSymbolsKind }; private: std::pair<uintptr_t,uintptr_t> Data; @@ -153,6 +154,15 @@ public: } }; +class PostStore : public PostStmt { +public: + PostStore(const Stmt* S) : PostStmt(S, PostLoadKind) {} + + static bool classof(const ProgramPoint* Location) { + return Location->getKind() == PostStoreKind; + } +}; + class PostPurgeDeadSymbols : public PostStmt { public: PostPurgeDeadSymbols(const Stmt* S) : PostStmt(S, PostPurgeDeadSymbolsKind) {} |