diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-01-19 16:41:58 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-01-19 16:41:58 +0000 |
commit | 9ea416e598fa3cb09d67d514c4519c99abb81321 (patch) | |
tree | 1cb5e060b2ab76c14340c0ac0e475b4b7baf1399 /lib/Parse/ParseDeclCXX.cpp | |
parent | 2998d6b0e6d5476c473f68012a851fe4a0f609c8 (diff) |
Parse the optional semicolon after a C++ in-class member function
definition, rather than complaining about it. Problem reported by
Marshall Clow.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123835 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Parse/ParseDeclCXX.cpp')
-rw-r--r-- | lib/Parse/ParseDeclCXX.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/Parse/ParseDeclCXX.cpp b/lib/Parse/ParseDeclCXX.cpp index 20e2b8b0be..75a6f59eac 100644 --- a/lib/Parse/ParseDeclCXX.cpp +++ b/lib/Parse/ParseDeclCXX.cpp @@ -1489,6 +1489,10 @@ void Parser::ParseCXXClassMemberDeclaration(AccessSpecifier AS, Diag(Tok, diag::err_func_def_no_params); ConsumeBrace(); SkipUntil(tok::r_brace, true); + + // Consume the optional ';' + if (Tok.is(tok::semi)) + ConsumeToken(); return; } @@ -1499,10 +1503,18 @@ void Parser::ParseCXXClassMemberDeclaration(AccessSpecifier AS, // assumes the declarator represents a function, not a typedef. ConsumeBrace(); SkipUntil(tok::r_brace, true); + + // Consume the optional ';' + if (Tok.is(tok::semi)) + ConsumeToken(); return; } ParseCXXInlineMethodDef(AS, DeclaratorInfo, TemplateInfo); + // Consume the optional ';' + if (Tok.is(tok::semi)) + ConsumeToken(); + return; } } |