aboutsummaryrefslogtreecommitdiff
path: root/include/clang/Checker/PathSensitive
diff options
context:
space:
mode:
authorZhongxing Xu <xuzhongxing@gmail.com>2010-11-24 08:53:20 +0000
committerZhongxing Xu <xuzhongxing@gmail.com>2010-11-24 08:53:20 +0000
commit19b78d9e3dbbc27bbcbdd8c3017a00fe88849ecd (patch)
tree313c72a34a82e178a70c3e47e395c0ae564cb99a /include/clang/Checker/PathSensitive
parent5281b8ed0e395603e5ff15ecc01ee0d0dff2e0fd (diff)
Use StackFrameContext directly in CallEnter program point. Then we don't need
to remake the stackframe everytime in GRExprEngine::ProcessCallEnter(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120087 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Checker/PathSensitive')
-rw-r--r--include/clang/Checker/PathSensitive/AnalysisManager.h2
-rw-r--r--include/clang/Checker/PathSensitive/GRCoreEngine.h13
2 files changed, 8 insertions, 7 deletions
diff --git a/include/clang/Checker/PathSensitive/AnalysisManager.h b/include/clang/Checker/PathSensitive/AnalysisManager.h
index fe50699753..79d9903890 100644
--- a/include/clang/Checker/PathSensitive/AnalysisManager.h
+++ b/include/clang/Checker/PathSensitive/AnalysisManager.h
@@ -154,7 +154,7 @@ public:
bool hasIndexer() const { return Idxer != 0; }
- const AnalysisContext *getAnalysisContextInAnotherTU(const Decl *D);
+ AnalysisContext *getAnalysisContextInAnotherTU(const Decl *D);
CFG *getCFG(Decl const *D) {
return AnaCtxMgr.getContext(D)->getCFG();
diff --git a/include/clang/Checker/PathSensitive/GRCoreEngine.h b/include/clang/Checker/PathSensitive/GRCoreEngine.h
index 58c148f66d..8e9f3973b6 100644
--- a/include/clang/Checker/PathSensitive/GRCoreEngine.h
+++ b/include/clang/Checker/PathSensitive/GRCoreEngine.h
@@ -482,11 +482,12 @@ class GRCallEnterNodeBuilder {
const ExplodedNode *Pred;
- // The call site.
+ // The call site. For implicit automatic object dtor, this is the trigger
+ // statement.
const Stmt *CE;
- // The AnalysisContext of the callee.
- AnalysisContext *CalleeCtx;
+ // The context of the callee.
+ const StackFrameContext *CalleeCtx;
// The parent block of the CallExpr.
const CFGBlock *Block;
@@ -496,7 +497,7 @@ class GRCallEnterNodeBuilder {
public:
GRCallEnterNodeBuilder(GRCoreEngine &eng, const ExplodedNode *pred,
- const Stmt *s, AnalysisContext *callee,
+ const Stmt *s, const StackFrameContext *callee,
const CFGBlock *blk, unsigned idx)
: Eng(eng), Pred(pred), CE(s), CalleeCtx(callee), Block(blk), Index(idx) {}
@@ -508,13 +509,13 @@ public:
const Stmt *getCallExpr() const { return CE; }
- AnalysisContext *getCalleeContext() const { return CalleeCtx; }
+ const StackFrameContext *getCalleeContext() const { return CalleeCtx; }
const CFGBlock *getBlock() const { return Block; }
unsigned getIndex() const { return Index; }
- void GenerateNode(const GRState *state, const LocationContext *LocCtx);
+ void GenerateNode(const GRState *state);
};
class GRCallExitNodeBuilder {