diff options
author | Steve Naroff <snaroff@apple.com> | 2009-04-07 22:56:58 +0000 |
---|---|---|
committer | Steve Naroff <snaroff@apple.com> | 2009-04-07 22:56:58 +0000 |
commit | 93a259500186fa7270f66cb460c5f5728e5680ae (patch) | |
tree | 21cfec2141afc96bcb45b2ca75a54ce417a9219b /lib/Parse/ParseObjc.cpp | |
parent | 03abc9ec05e8edce5e8d0c7f08a05027b9e04170 (diff) |
Fix <rdar://problem/6764172> [sema] crash on invalid.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68568 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Parse/ParseObjc.cpp')
-rw-r--r-- | lib/Parse/ParseObjc.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/Parse/ParseObjc.cpp b/lib/Parse/ParseObjc.cpp index 05c919cbea..8a942c7702 100644 --- a/lib/Parse/ParseObjc.cpp +++ b/lib/Parse/ParseObjc.cpp @@ -1294,8 +1294,14 @@ Parser::OwningStmtResult Parser::ParseObjCTryStmt(SourceLocation atLoc) { FirstPart = Actions.ActOnParamDeclarator(CurScope, ParmDecl); } else ConsumeToken(); // consume '...' - SourceLocation RParenLoc = ConsumeParen(); + + SourceLocation RParenLoc; + if (Tok.is(tok::r_paren)) + RParenLoc = ConsumeParen(); + else // Skip over garbage, until we get to ')'. Eat the ')'. + SkipUntil(tok::r_paren, true, false); + OwningStmtResult CatchBody(Actions, true); if (Tok.is(tok::l_brace)) CatchBody = ParseCompoundStatementBody(); |