diff options
| author | Fariborz Jahanian <fjahanian@apple.com> | 2012-08-10 20:34:17 +0000 |
|---|---|---|
| committer | Fariborz Jahanian <fjahanian@apple.com> | 2012-08-10 20:34:17 +0000 |
| commit | 053227f8087b2d191b00071723597c7950d731b9 (patch) | |
| tree | 867548146e9bcae27fb21e2459bee14d31293986 /clang/lib | |
| parent | 0c90c2bc4bb5cf32c8d466cb4502762da0ed8be5 (diff) | |
| download | bcm5719-llvm-053227f8087b2d191b00071723597c7950d731b9.tar.gz bcm5719-llvm-053227f8087b2d191b00071723597c7950d731b9.zip | |
objective-C++: delay parsing of ctor with try block
with member initializer list defined inside
an objc implementation block. wip.
llvm-svn: 161692
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/Parse/ParseObjc.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/lib/Parse/ParseObjc.cpp b/clang/lib/Parse/ParseObjc.cpp index 9b7e85f2111..2471d9441b3 100644 --- a/clang/lib/Parse/ParseObjc.cpp +++ b/clang/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(); |

