From c5cf70c6b8addf392c692f6a3d8eb5f1b900e167 Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Tue, 20 Oct 2009 11:41:19 +0200 Subject: [PATCH] Check for valid decl_specifier_seq when parsing declaration statements. --- src/shared/cplusplus/Parser.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp index 7c36c13a305..6f979152e09 100644 --- a/src/shared/cplusplus/Parser.cpp +++ b/src/shared/cplusplus/Parser.cpp @@ -2402,10 +2402,18 @@ bool Parser::parseNamespaceAliasDefinition(DeclarationAST *&node) bool Parser::parseDeclarationStatement(StatementAST *&node) { + unsigned start = cursor(); DeclarationAST *declaration = 0; if (! parseBlockDeclaration(declaration)) return false; + if (SimpleDeclarationAST *simpleDeclaration = declaration->asSimpleDeclaration()) { + if (! simpleDeclaration->decl_specifier_seq) { + rewind(start); + return false; + } + } + DeclarationStatementAST *ast = new (_pool) DeclarationStatementAST; ast->declaration = declaration; node = ast;