diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Parse/ParseObjc.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/Parse/ParseObjc.cpp b/lib/Parse/ParseObjc.cpp index 9b7e85f211..2471d9441b 100644 --- a/lib/Parse/ParseObjc.cpp +++ b/lib/Parse/ParseObjc.cpp @@ -1931,6 +1931,16 @@ void Parser::StashAwayMethodOrFunctionBodyTokens(Decl *MDecl) { Toks.push_back(Tok); if (Tok.is(tok::kw_try)) { ConsumeToken(); + if (Tok.is(tok::colon)) { + Toks.push_back(Tok); + ConsumeToken(); + while (Tok.isNot(tok::l_brace)) { + ConsumeAndStoreUntil(tok::l_paren, Toks, /*StopAtSemi=*/false); + ConsumeAndStoreUntil(tok::r_paren, Toks, /*StopAtSemi=*/false); + } + } + assert(Tok.is(tok::l_brace) + && "StashAwayMethodOrFunctionBodyTokens - '{' not found"); Toks.push_back(Tok); // also store '{' } ConsumeBrace(); |