diff options
author | Zhongxing Xu <xuzhongxing@gmail.com> | 2009-09-02 08:10:35 +0000 |
---|---|---|
committer | Zhongxing Xu <xuzhongxing@gmail.com> | 2009-09-02 08:10:35 +0000 |
commit | d99f3615825bf1e26ac670f6c2c2b70b7b765e14 (patch) | |
tree | 9259cf7e5accf492b3fafafedd2c55c99614085d /lib/Analysis/GRExprEngine.cpp | |
parent | 904e1e30f945dc11d9a6b08314db6e5bdb07e3ec (diff) |
Refactor bad callee check into a Checker.
Now bad callee is checked as a PreVisit to the CallExpr.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80771 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/GRExprEngine.cpp')
-rw-r--r-- | lib/Analysis/GRExprEngine.cpp | 15 |
1 files changed, 1 insertions, 14 deletions
diff --git a/lib/Analysis/GRExprEngine.cpp b/lib/Analysis/GRExprEngine.cpp index d0b6bbf095..a6b580b865 100644 --- a/lib/Analysis/GRExprEngine.cpp +++ b/lib/Analysis/GRExprEngine.cpp @@ -1493,20 +1493,7 @@ void GRExprEngine::VisitCallRec(CallExpr* CE, ExplodedNode* Pred, // FIXME: Add support for symbolic function calls (calls involving // function pointer values that are symbolic). - - // Check for undefined control-flow or calls to NULL. - - if (L.isUndef() || isa<loc::ConcreteInt>(L)) { - ExplodedNode* N = Builder->generateNode(CE, state, *DI); - - if (N) { - N->markAsSink(); - BadCalls.insert(N); - } - - continue; - } - + // Check for the "noreturn" attribute. SaveAndRestore<bool> OldSink(Builder->BuildSinks); |