From fcddf668e724f57e5d75dc641bba534c6a21cd0d Mon Sep 17 00:00:00 2001 From: dim Date: Wed, 1 Jan 2014 00:37:42 +0000 Subject: Vendor import of clang RELEASE_34/final tag r197956 (effectively, 3.4 release): https://llvm.org/svn/llvm-project/cfe/tags/RELEASE_34/final@197956 --- lib/Parse/ParseDeclCXX.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'lib/Parse/ParseDeclCXX.cpp') diff --git a/lib/Parse/ParseDeclCXX.cpp b/lib/Parse/ParseDeclCXX.cpp index 16d06d7..dd29f99 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; } -- cgit v1.1