[cfe-commits] r64375 - in /cfe/trunk: include/clang/Basic/DiagnosticSemaKinds.def lib/Sema/SemaStmt.cpp test/Parser/objc-try-catch-1.m test/SemaObjC/try-catch.m
Chris Lattner
clattner at apple.com
Thu Feb 12 09:47:54 PST 2009
On Feb 12, 2009, at 7:55 AM, Steve Naroff wrote:
> +Sema::ActOnObjCAtThrowStmt(SourceLocation AtLoc, ExprArg expr,Scope
> *CurScope) {
> Expr *ThrowExpr = static_cast<Expr*>(expr.release());
> if (!ThrowExpr) {
> // @throw without an expression designates a rethrow (which much
> occur
> @@ -998,8 +997,7 @@
> if (!Context.isObjCObjectPointerType(ThrowType)) {
> const PointerType *PT = ThrowType->getAsPointerType();
> if (!PT || !PT->getPointeeType()->isVoidType())
> - // This should be an error, however GCC only yields a
> warning.
> - Diag(AtLoc, diag::warn_objc_throw_expects_object)
> + Diag(AtLoc, diag::error_objc_throw_expects_object)
> << ThrowExpr->getType() << ThrowExpr-
> >getSourceRange();
> }
>
I think this should "return true;" after the error so that we don't
create and return an invalid AST.
-Chris
More information about the cfe-commits
mailing list