From: Ted Kremenek Date: Tue, 9 Dec 2008 20:18:58 +0000 (+0000) Subject: In GRExprEngine treat @throw as an 'abort' that ends the current path. This is a... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bbfd07a0c94f659beaf74316029ef73769cefb81;p=clang 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 --- 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 OldSink(Builder->BuildSinks); + Builder->BuildSinks = true; + MakeNode(Dst, S, Pred, GetState(Pred)); + break; + } + case Stmt::ParenExprClass: Visit(cast(S)->getSubExpr()->IgnoreParens(), Pred, Dst); break;