diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2014-01-01 00:37:42 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2014-01-01 00:37:42 +0000 |
commit | 33fa48314f06936f83859852feb3c0ce68b08c0c (patch) | |
tree | 6093927642346f0672b480cbc4b6c2a1b26b8a64 /lib/Parse/ParseDeclCXX.cpp | |
parent | bfef399519ca9b8a4b4c6b563253bad7e0eeffe0 (diff) |
Notes
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; } |