diff options
author | Zhongxing Xu <xuzhongxing@gmail.com> | 2010-11-16 07:52:17 +0000 |
---|---|---|
committer | Zhongxing Xu <xuzhongxing@gmail.com> | 2010-11-16 07:52:17 +0000 |
commit | 9dc84c9455df2a77195147d0210c915dc1775a88 (patch) | |
tree | 17f323502c631bd4a851a4ad8f5470d170c3f42a /include/clang/Analysis/ProgramPoint.h | |
parent | a437ad3ec5b407ede394d74e6f9f463fa3657dbe (diff) | |
download | clang-9dc84c9455df2a77195147d0210c915dc1775a88.tar.gz |
Handle member initializer in C++ ctor.
- Add a new Kind of ProgramPoint: PostInitializer.
- Still use GRStmtNodeBuilder. But special handling PostInitializer in
GRStmtNodeBuilder::GenerateAutoTransition().
- Someday we should clean up the interface of GRStmtNodeBuilder.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119335 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Analysis/ProgramPoint.h')
-rw-r--r-- | include/clang/Analysis/ProgramPoint.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/include/clang/Analysis/ProgramPoint.h b/include/clang/Analysis/ProgramPoint.h index c29fd02c0a..a77ca39b15 100644 --- a/include/clang/Analysis/ProgramPoint.h +++ b/include/clang/Analysis/ProgramPoint.h @@ -44,6 +44,7 @@ public: PostPurgeDeadSymbolsKind, PostStmtCustomKind, PostLValueKind, + PostInitializerKind, CallEnterKind, CallExitKind, MinPostStmtKind = PostStmtKind, @@ -304,6 +305,17 @@ public: } }; +class PostInitializer : public ProgramPoint { +public: + PostInitializer(const CXXBaseOrMemberInitializer *I, + const LocationContext *L) + : ProgramPoint(I, PostInitializerKind, L) {} + + static bool classof(const ProgramPoint *Location) { + return Location->getKind() == PostInitializerKind; + } +}; + class CallEnter : public StmtPoint { public: // L is caller's location context. AC is callee's AnalysisContext. |