diff options
| author | Steve Naroff <snaroff@apple.com> | 2008-09-16 23:11:46 +0000 |
|---|---|---|
| committer | Steve Naroff <snaroff@apple.com> | 2008-09-16 23:11:46 +0000 |
| commit | 7a147c6a3ce30ecb26f8dfbd98c5c420cd5cfc96 (patch) | |
| tree | d3770d38f8edf0a7d2d9a3cc61c275eead98a0cf /clang/lib/Parse/ParseExpr.cpp | |
| parent | 3fccede02a53dce6278f5adabfffac8e74260115 (diff) | |
| download | bcm5719-llvm-7a147c6a3ce30ecb26f8dfbd98c5c420cd5cfc96.tar.gz bcm5719-llvm-7a147c6a3ce30ecb26f8dfbd98c5c420cd5cfc96.zip | |
Remove support for BlockExprExpr. For example...
^(expression) or ^(int arg1, float arg2)(expression)
...is no longer supported.
All block literals now require a compound statement.
llvm-svn: 56257
Diffstat (limited to 'clang/lib/Parse/ParseExpr.cpp')
| -rw-r--r-- | clang/lib/Parse/ParseExpr.cpp | 16 |
1 files changed, 2 insertions, 14 deletions
diff --git a/clang/lib/Parse/ParseExpr.cpp b/clang/lib/Parse/ParseExpr.cpp index b532078d40c..64f31ddbc80 100644 --- a/clang/lib/Parse/ParseExpr.cpp +++ b/clang/lib/Parse/ParseExpr.cpp @@ -1077,11 +1077,10 @@ bool Parser::ParseExpressionList(ExprListTy &Exprs, CommaLocsTy &CommaLocs) { } /// ParseBlockLiteralExpression - Parse a block literal, which roughly looks -/// like ^(int x){ return x+1; } or ^(int y)foo(4, y, z) +/// like ^(int x){ return x+1; } /// /// block-literal: /// [clang] '^' block-args[opt] compound-statement -/// [clang] '^' block-args cast-expression /// [clang] block-args: /// [clang] '(' parameter-list ')' /// @@ -1122,26 +1121,15 @@ Parser::ExprResult Parser::ParseBlockLiteralExpression() { // Inform sema that we are starting a block. Actions.ActOnBlockStart(CaretLoc, CurScope, ParamInfo); - ExprResult Result; + ExprResult Result = true; if (Tok.is(tok::l_brace)) { StmtResult Stmt = ParseCompoundStatementBody(); if (!Stmt.isInvalid) { Result = Actions.ActOnBlockStmtExpr(CaretLoc, Stmt.Val, CurScope); } else { Actions.ActOnBlockError(CaretLoc, CurScope); - Result = true; - } - } else { - ExprResult Expr = ParseCastExpression(false); - if (!Expr.isInvalid) { - Result = Actions.ActOnBlockExprExpr(CaretLoc, Expr.Val, CurScope); - } else { - Actions.ActOnBlockError(CaretLoc, CurScope); - Diag(Tok, diag::err_expected_block_lbrace); - Result = true; } } - ExitScope(); return Result; } |

