diff options
author | Ted Kremenek <kremenek@apple.com> | 2008-12-09 20:18:58 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2008-12-09 20:18:58 +0000 |
commit | bbfd07a0c94f659beaf74316029ef73769cefb81 (patch) | |
tree | 8503e528e875aba7d2d5ae5d34c5dde139eb86bc /lib/Analysis/GRExprEngine.cpp | |
parent | 7f792faf0cee47fa1ea304bd7a7f502c0e5bbc9a (diff) |
In GRExprEngine treat @throw as an 'abort' that ends the current path. This is a temporary solution.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60789 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/GRExprEngine.cpp')
-rw-r--r-- | lib/Analysis/GRExprEngine.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/Analysis/GRExprEngine.cpp b/lib/Analysis/GRExprEngine.cpp index 343ac697a3..96776b46ff 100644 --- a/lib/Analysis/GRExprEngine.cpp +++ b/lib/Analysis/GRExprEngine.cpp @@ -377,6 +377,15 @@ void GRExprEngine::Visit(Stmt* S, NodeTy* Pred, NodeSet& Dst) { break; } + case Stmt::ObjCAtThrowStmtClass: { + // FIXME: This is not complete. We basically treat @throw as + // an abort. + SaveAndRestore<bool> OldSink(Builder->BuildSinks); + Builder->BuildSinks = true; + MakeNode(Dst, S, Pred, GetState(Pred)); + break; + } + case Stmt::ParenExprClass: Visit(cast<ParenExpr>(S)->getSubExpr()->IgnoreParens(), Pred, Dst); break; |