diff options
Diffstat (limited to 'lib/Parse/ParseDeclCXX.cpp')
| -rw-r--r-- | lib/Parse/ParseDeclCXX.cpp | 8 | 
1 files changed, 7 insertions, 1 deletions
| diff --git a/lib/Parse/ParseDeclCXX.cpp b/lib/Parse/ParseDeclCXX.cpp index 16d06d7d152c..dd29f99ffc71 100644 --- a/lib/Parse/ParseDeclCXX.cpp +++ b/lib/Parse/ParseDeclCXX.cpp @@ -1427,7 +1427,13 @@ void Parser::ParseClassSpecifier(tok::TokenKind TagTokKind,          << DeclSpec::getSpecifierName(TagType);      } -    SkipUntil(tok::comma, StopAtSemi); +    // If we are parsing a definition and stop at a base-clause, continue on +    // until the semicolon.  Continuing from the comma will just trick us into +    // thinking we are seeing a variable declaration. +    if (TUK == Sema::TUK_Definition && Tok.is(tok::colon)) +      SkipUntil(tok::semi, StopBeforeMatch); +    else +      SkipUntil(tok::comma, StopAtSemi);      return;    } | 
