aboutsummaryrefslogtreecommitdiff
path: root/include/clang/Checker/PathSensitive
diff options
context:
space:
mode:
authorZhongxing Xu <xuzhongxing@gmail.com>2010-11-15 08:48:43 +0000
committerZhongxing Xu <xuzhongxing@gmail.com>2010-11-15 08:48:43 +0000
commit9c6cd67ea416bace666d614c84d5531124287653 (patch)
tree4a781c989c0e881e09234318323621094046e2b2 /include/clang/Checker/PathSensitive
parentc09265a5fd94af5dcfd7325d0cb4f04197d65afc (diff)
Add skeleton for handling other kinds of CFGElements.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119135 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Checker/PathSensitive')
-rw-r--r--include/clang/Checker/PathSensitive/GRCoreEngine.h4
-rw-r--r--include/clang/Checker/PathSensitive/GRExprEngine.h12
-rw-r--r--include/clang/Checker/PathSensitive/GRSubEngine.h2
3 files changed, 12 insertions, 6 deletions
diff --git a/include/clang/Checker/PathSensitive/GRCoreEngine.h b/include/clang/Checker/PathSensitive/GRCoreEngine.h
index a1062ac03e..411f29d802 100644
--- a/include/clang/Checker/PathSensitive/GRCoreEngine.h
+++ b/include/clang/Checker/PathSensitive/GRCoreEngine.h
@@ -90,8 +90,8 @@ private:
SubEngine.ProcessEndPath(Builder);
}
- void ProcessStmt(const CFGElement E, GRStmtNodeBuilder& Builder) {
- SubEngine.ProcessStmt(E, Builder);
+ void ProcessElement(const CFGElement E, GRStmtNodeBuilder& Builder) {
+ SubEngine.ProcessElement(E, Builder);
}
bool ProcessBlockEntrance(const CFGBlock* Blk, const ExplodedNode *Pred,
diff --git a/include/clang/Checker/PathSensitive/GRExprEngine.h b/include/clang/Checker/PathSensitive/GRExprEngine.h
index d125befdbe..ab6a74dc34 100644
--- a/include/clang/Checker/PathSensitive/GRExprEngine.h
+++ b/include/clang/Checker/PathSensitive/GRExprEngine.h
@@ -175,9 +175,15 @@ public:
return static_cast<CHECKER*>(lookupChecker(CHECKER::getTag()));
}
- /// ProcessStmt - Called by GRCoreEngine. Used to generate new successor
- /// nodes by processing the 'effects' of a block-level statement.
- void ProcessStmt(const CFGElement E, GRStmtNodeBuilder& builder);
+ /// ProcessElement - Called by GRCoreEngine. Used to generate new successor
+ /// nodes by processing the 'effects' of a CFG element.
+ void ProcessElement(const CFGElement E, GRStmtNodeBuilder& builder);
+
+ void ProcessStmt(const CFGStmt S, GRStmtNodeBuilder &builder);
+
+ void ProcessInitializer(const CFGInitializer I, GRStmtNodeBuilder &builder);
+
+ void ProcessImplicitDtor(const CFGImplicitDtor D, GRStmtNodeBuilder &builder);
/// ProcessBlockEntrance - Called by GRCoreEngine when start processing
/// a CFGBlock. This method returns true if the analysis should continue
diff --git a/include/clang/Checker/PathSensitive/GRSubEngine.h b/include/clang/Checker/PathSensitive/GRSubEngine.h
index 1904835fbc..ff86adc9f8 100644
--- a/include/clang/Checker/PathSensitive/GRSubEngine.h
+++ b/include/clang/Checker/PathSensitive/GRSubEngine.h
@@ -47,7 +47,7 @@ public:
/// Called by GRCoreEngine. Used to generate new successor
/// nodes by processing the 'effects' of a block-level statement.
- virtual void ProcessStmt(const CFGElement E, GRStmtNodeBuilder& builder) = 0;
+ virtual void ProcessElement(const CFGElement E, GRStmtNodeBuilder& builder)=0;
/// Called by GRCoreEngine when start processing
/// a CFGBlock. This method returns true if the analysis should continue