forked from qt-creator/qt-creator
Check for valid decl_specifier_seq when parsing declaration statements.
This commit is contained in:
@@ -2402,10 +2402,18 @@ bool Parser::parseNamespaceAliasDefinition(DeclarationAST *&node)
|
|||||||
|
|
||||||
bool Parser::parseDeclarationStatement(StatementAST *&node)
|
bool Parser::parseDeclarationStatement(StatementAST *&node)
|
||||||
{
|
{
|
||||||
|
unsigned start = cursor();
|
||||||
DeclarationAST *declaration = 0;
|
DeclarationAST *declaration = 0;
|
||||||
if (! parseBlockDeclaration(declaration))
|
if (! parseBlockDeclaration(declaration))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
if (SimpleDeclarationAST *simpleDeclaration = declaration->asSimpleDeclaration()) {
|
||||||
|
if (! simpleDeclaration->decl_specifier_seq) {
|
||||||
|
rewind(start);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
DeclarationStatementAST *ast = new (_pool) DeclarationStatementAST;
|
DeclarationStatementAST *ast = new (_pool) DeclarationStatementAST;
|
||||||
ast->declaration = declaration;
|
ast->declaration = declaration;
|
||||||
node = ast;
|
node = ast;
|
||||||
|
Reference in New Issue
Block a user