diff options
author | Anders Carlsson <andersca@mac.com> | 2011-02-19 23:53:54 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2011-02-19 23:53:54 +0000 |
commit | ce8dd3a5d474b40ab4399aeab94d616f7f2b1055 (patch) | |
tree | 09cb9dc1e0bb7c465e2a4008b74b36c799db56e8 /clang/lib/Sema/SemaStmt.cpp | |
parent | 8f5cf74c77e65847201cb7d0c894d2f7b78366be (diff) | |
download | bcm5719-llvm-ce8dd3a5d474b40ab4399aeab94d616f7f2b1055.tar.gz bcm5719-llvm-ce8dd3a5d474b40ab4399aeab94d616f7f2b1055.zip |
Add a new ObjCExceptions member variable to LangOptions. This controls whether Objective-C exceptions are enabled or not (they are by default).
llvm-svn: 126061
Diffstat (limited to 'clang/lib/Sema/SemaStmt.cpp')
-rw-r--r-- | clang/lib/Sema/SemaStmt.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaStmt.cpp b/clang/lib/Sema/SemaStmt.cpp index 61ab3d3a5bc..e995e8f207d 100644 --- a/clang/lib/Sema/SemaStmt.cpp +++ b/clang/lib/Sema/SemaStmt.cpp @@ -1631,6 +1631,9 @@ Sema::ActOnObjCAtFinallyStmt(SourceLocation AtLoc, Stmt *Body) { StmtResult Sema::ActOnObjCAtTryStmt(SourceLocation AtLoc, Stmt *Try, MultiStmtArg CatchStmts, Stmt *Finally) { + if (!getLangOptions().ObjCExceptions) + Diag(AtLoc, diag::err_objc_exceptions_disabled) << "@try"; + getCurFunction()->setHasBranchProtectedScope(); unsigned NumCatchStmts = CatchStmts.size(); return Owned(ObjCAtTryStmt::Create(Context, AtLoc, Try, @@ -1661,6 +1664,9 @@ StmtResult Sema::BuildObjCAtThrowStmt(SourceLocation AtLoc, StmtResult Sema::ActOnObjCAtThrowStmt(SourceLocation AtLoc, Expr *Throw, Scope *CurScope) { + if (!getLangOptions().ObjCExceptions) + Diag(AtLoc, diag::err_objc_exceptions_disabled) << "@throw"; + if (!Throw) { // @throw without an expression designates a rethrow (which much occur // in the context of an @catch clause). |