diff --git a/src/libs/cplusplus/FindUsages.cpp b/src/libs/cplusplus/FindUsages.cpp
index 905d9be4fc77b48c58a134c516aa017c3245f7e0..e78ae8988725d112a3774451952b17276988a6e9 100644
--- a/src/libs/cplusplus/FindUsages.cpp
+++ b/src/libs/cplusplus/FindUsages.cpp
@@ -647,7 +647,7 @@ void FindUsages::parameterDeclarationClause(ParameterDeclarationClauseAST *ast)
     if (! ast)
         return;
 
-    for (DeclarationListAST *it = ast->parameter_declaration_list; it; it = it->next) {
+    for (ParameterDeclarationListAST *it = ast->parameter_declaration_list; it; it = it->next) {
         this->declaration(it->value);
     }
     // unsigned dot_dot_dot_token = ast->dot_dot_dot_token;
@@ -912,7 +912,7 @@ void FindUsages::trailingReturnType(TrailingReturnTypeAST *ast)
     for (SpecifierListAST *it = ast->attributes; it; it = it->next) {
         this->specifier(it->value);
     }
-    for (SpecifierListAST *it = ast->type_specifiers; it; it = it->next) {
+    for (SpecifierListAST *it = ast->type_specifier_list; it; it = it->next) {
         this->specifier(it->value);
     }
     this->declarator(ast->declarator);
@@ -1474,7 +1474,7 @@ bool FindUsages::visit(QtPrivateSlotAST *ast)
     // unsigned dptr_lparen_token = ast->dptr_lparen_token;
     // unsigned dptr_rparen_token = ast->dptr_rparen_token;
     // unsigned comma_token = ast->comma_token;
-    for (SpecifierListAST *it = ast->type_specifiers; it; it = it->next) {
+    for (SpecifierListAST *it = ast->type_specifier_list; it; it = it->next) {
         this->specifier(it->value);
     }
     this->declarator(ast->declarator);
@@ -1488,7 +1488,7 @@ bool FindUsages::visit(QtPropertyDeclarationAST *ast)
     // unsigned lparen_token = ast->lparen_token;
     this->expression(ast->type_id);
     /*const Name *property_name =*/ this->name(ast->property_name);
-    for (QtPropertyDeclarationItemListAST *it = ast->property_declaration_items; it; it = it->next) {
+    for (QtPropertyDeclarationItemListAST *it = ast->property_declaration_item_list; it; it = it->next) {
         this->qtPropertyDeclarationItem(it->value);
     }
     // unsigned rparen_token = ast->rparen_token;
@@ -2126,7 +2126,7 @@ bool FindUsages::visit(NestedDeclaratorAST *ast)
 bool FindUsages::visit(FunctionDeclaratorAST *ast)
 {
     // unsigned lparen_token = ast->lparen_token;
-    this->parameterDeclarationClause(ast->parameters);
+    this->parameterDeclarationClause(ast->parameter_declaration_clause);
     // unsigned rparen_token = ast->rparen_token;
     for (SpecifierListAST *it = ast->cv_qualifier_list; it; it = it->next) {
         this->specifier(it->value);
diff --git a/src/shared/cplusplus/AST.cpp b/src/shared/cplusplus/AST.cpp
index 80137c3260cc1663c3801cbf37a84a842ce14837..8430d0b1e313957213b23e9c42060fe40a514421 100644
--- a/src/shared/cplusplus/AST.cpp
+++ b/src/shared/cplusplus/AST.cpp
@@ -1379,8 +1379,8 @@ unsigned FunctionDeclaratorAST::firstToken() const
 {
     if (lparen_token)
         return lparen_token;
-    if (parameters)
-        if (unsigned candidate = parameters->firstToken())
+    if (parameter_declaration_clause)
+        if (unsigned candidate = parameter_declaration_clause->firstToken())
             return candidate;
     if (rparen_token)
         return rparen_token;
@@ -1416,8 +1416,8 @@ unsigned FunctionDeclaratorAST::lastToken() const
             return candidate;
     if (rparen_token)
         return rparen_token + 1;
-    if (parameters)
-        if (unsigned candidate = parameters->lastToken())
+    if (parameter_declaration_clause)
+        if (unsigned candidate = parameter_declaration_clause->lastToken())
             return candidate;
     if (lparen_token)
         return lparen_token + 1;
@@ -3317,8 +3317,8 @@ unsigned QtPrivateSlotAST::firstToken() const
         return dptr_rparen_token;
     if (comma_token)
         return comma_token;
-    if (type_specifiers)
-        if (unsigned candidate = type_specifiers->firstToken())
+    if (type_specifier_list)
+        if (unsigned candidate = type_specifier_list->firstToken())
             return candidate;
     if (declarator)
         if (unsigned candidate = declarator->firstToken())
@@ -3336,8 +3336,8 @@ unsigned QtPrivateSlotAST::lastToken() const
     if (declarator)
         if (unsigned candidate = declarator->lastToken())
             return candidate;
-    if (type_specifiers)
-        if (unsigned candidate = type_specifiers->lastToken())
+    if (type_specifier_list)
+        if (unsigned candidate = type_specifier_list->lastToken())
             return candidate;
     if (comma_token)
         return comma_token + 1;
@@ -3367,8 +3367,8 @@ unsigned QtPropertyDeclarationAST::firstToken() const
     if (property_name)
         if (unsigned candidate = property_name->firstToken())
             return candidate;
-    if (property_declaration_items)
-        if (unsigned candidate = property_declaration_items->firstToken())
+    if (property_declaration_item_list)
+        if (unsigned candidate = property_declaration_item_list->firstToken())
             return candidate;
     if (rparen_token)
         return rparen_token;
@@ -3380,8 +3380,8 @@ unsigned QtPropertyDeclarationAST::lastToken() const
 {
     if (rparen_token)
         return rparen_token + 1;
-    if (property_declaration_items)
-        if (unsigned candidate = property_declaration_items->lastToken())
+    if (property_declaration_item_list)
+        if (unsigned candidate = property_declaration_item_list->lastToken())
             return candidate;
     if (property_name)
         if (unsigned candidate = property_name->lastToken())
@@ -3818,8 +3818,8 @@ unsigned TrailingReturnTypeAST::firstToken() const
     if (attributes)
         if (unsigned candidate = attributes->firstToken())
             return candidate;
-    if (type_specifiers)
-        if (unsigned candidate = type_specifiers->firstToken())
+    if (type_specifier_list)
+        if (unsigned candidate = type_specifier_list->firstToken())
             return candidate;
     if (declarator)
         if (unsigned candidate = declarator->firstToken())
@@ -3833,8 +3833,8 @@ unsigned TrailingReturnTypeAST::lastToken() const
     if (declarator)
         if (unsigned candidate = declarator->lastToken())
             return candidate;
-    if (type_specifiers)
-        if (unsigned candidate = type_specifiers->lastToken())
+    if (type_specifier_list)
+        if (unsigned candidate = type_specifier_list->lastToken())
             return candidate;
     if (attributes)
         if (unsigned candidate = attributes->lastToken())
diff --git a/src/shared/cplusplus/AST.h b/src/shared/cplusplus/AST.h
index 3f7a163c27a57910f9313680776874c6b9e4717d..74954b593019d9952d4297a30a1cb34c676c0fa6 100644
--- a/src/shared/cplusplus/AST.h
+++ b/src/shared/cplusplus/AST.h
@@ -711,7 +711,7 @@ public:
     unsigned dptr_lparen_token;
     unsigned dptr_rparen_token;
     unsigned comma_token;
-    SpecifierListAST *type_specifiers;
+    SpecifierListAST *type_specifier_list;
     DeclaratorAST *declarator;
     unsigned rparen_token;
 
@@ -723,7 +723,7 @@ public:
         , dptr_lparen_token(0)
         , dptr_rparen_token(0)
         , comma_token(0)
-        , type_specifiers(0)
+        , type_specifier_list(0)
         , declarator(0)
         , rparen_token(0)
     {}
@@ -771,7 +771,7 @@ public:
     unsigned lparen_token;
     ExpressionAST *type_id;
     NameAST *property_name;
-    QtPropertyDeclarationItemListAST *property_declaration_items;
+    QtPropertyDeclarationItemListAST *property_declaration_item_list;
     unsigned rparen_token;
 
 public:
@@ -780,7 +780,7 @@ public:
         , lparen_token(0)
         , type_id(0)
         , property_name(0)
-        , property_declaration_items(0)
+        , property_declaration_item_list(0)
         , rparen_token(0)
     {}
 
@@ -1442,7 +1442,7 @@ class CPLUSPLUS_EXPORT FunctionDeclaratorAST: public PostfixDeclaratorAST
 {
 public:
     unsigned lparen_token;
-    ParameterDeclarationClauseAST *parameters;
+    ParameterDeclarationClauseAST *parameter_declaration_clause;
     unsigned rparen_token;
     SpecifierListAST *cv_qualifier_list;
     ExceptionSpecificationAST *exception_specification;
@@ -1455,7 +1455,7 @@ public: // annotations
 public:
     FunctionDeclaratorAST()
         : lparen_token(0)
-        , parameters(0)
+        , parameter_declaration_clause(0)
         , rparen_token(0)
         , cv_qualifier_list(0)
         , exception_specification(0)
@@ -1733,8 +1733,8 @@ protected:
 class CPLUSPLUS_EXPORT ExpressionOrDeclarationStatementAST: public StatementAST
 {
 public:
-    StatementAST *expression;
-    StatementAST *declaration;
+    ExpressionStatementAST *expression;
+    DeclarationStatementAST *declaration;
 
 public:
     ExpressionOrDeclarationStatementAST()
@@ -2507,7 +2507,7 @@ protected:
 class CPLUSPLUS_EXPORT ParameterDeclarationClauseAST: public AST
 {
 public:
-    DeclarationListAST *parameter_declaration_list;
+    ParameterDeclarationListAST *parameter_declaration_list;
     unsigned dot_dot_dot_token;
 
 public:
@@ -4261,14 +4261,14 @@ class TrailingReturnTypeAST: public AST
 public:
     unsigned arrow_token;
     SpecifierListAST *attributes;
-    SpecifierListAST *type_specifiers;
+    SpecifierListAST *type_specifier_list;
     DeclaratorAST *declarator;
 
 public:
     TrailingReturnTypeAST()
         : arrow_token(0)
         , attributes(0)
-        , type_specifiers(0)
+        , type_specifier_list(0)
         , declarator(0)
     {}
 
diff --git a/src/shared/cplusplus/ASTClone.cpp b/src/shared/cplusplus/ASTClone.cpp
index 27cc47605d1f27297488121a11b80a2fde352b90..f9d14bfec484695a4d8a9dd7c36a5f90971f4d9f 100644
--- a/src/shared/cplusplus/ASTClone.cpp
+++ b/src/shared/cplusplus/ASTClone.cpp
@@ -171,7 +171,7 @@ QtPrivateSlotAST *QtPrivateSlotAST::clone(MemoryPool *pool) const
     ast->dptr_lparen_token = dptr_lparen_token;
     ast->dptr_rparen_token = dptr_rparen_token;
     ast->comma_token = comma_token;
-    for (SpecifierListAST *iter = type_specifiers, **ast_iter = &ast->type_specifiers;
+    for (SpecifierListAST *iter = type_specifier_list, **ast_iter = &ast->type_specifier_list;
          iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
         *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
     if (declarator)
@@ -198,7 +198,7 @@ QtPropertyDeclarationAST *QtPropertyDeclarationAST::clone(MemoryPool *pool) cons
         ast->type_id = type_id->clone(pool);
     if (property_name)
         ast->property_name = property_name->clone(pool);
-    for (QtPropertyDeclarationItemListAST *iter = property_declaration_items, **ast_iter = &ast->property_declaration_items;
+    for (QtPropertyDeclarationItemListAST *iter = property_declaration_item_list, **ast_iter = &ast->property_declaration_item_list;
          iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
         *ast_iter = new (pool) QtPropertyDeclarationItemListAST((iter->value) ? iter->value->clone(pool) : 0);
     ast->rparen_token = rparen_token;
@@ -475,8 +475,8 @@ FunctionDeclaratorAST *FunctionDeclaratorAST::clone(MemoryPool *pool) const
 {
     FunctionDeclaratorAST *ast = new (pool) FunctionDeclaratorAST;
     ast->lparen_token = lparen_token;
-    if (parameters)
-        ast->parameters = parameters->clone(pool);
+    if (parameter_declaration_clause)
+        ast->parameter_declaration_clause = parameter_declaration_clause->clone(pool);
     ast->rparen_token = rparen_token;
     for (SpecifierListAST *iter = cv_qualifier_list, **ast_iter = &ast->cv_qualifier_list;
          iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
@@ -927,9 +927,9 @@ ParameterDeclarationAST *ParameterDeclarationAST::clone(MemoryPool *pool) const
 ParameterDeclarationClauseAST *ParameterDeclarationClauseAST::clone(MemoryPool *pool) const
 {
     ParameterDeclarationClauseAST *ast = new (pool) ParameterDeclarationClauseAST;
-    for (DeclarationListAST *iter = parameter_declaration_list, **ast_iter = &ast->parameter_declaration_list;
+    for (ParameterDeclarationListAST *iter = parameter_declaration_list, **ast_iter = &ast->parameter_declaration_list;
          iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
-        *ast_iter = new (pool) DeclarationListAST((iter->value) ? iter->value->clone(pool) : 0);
+        *ast_iter = new (pool) ParameterDeclarationListAST((iter->value) ? iter->value->clone(pool) : 0);
     ast->dot_dot_dot_token = dot_dot_dot_token;
     return ast;
 }
@@ -1659,7 +1659,7 @@ TrailingReturnTypeAST *TrailingReturnTypeAST::clone(MemoryPool *pool) const
     for (SpecifierListAST *iter = attributes, **ast_iter = &ast->attributes;
          iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
         *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
-    for (SpecifierListAST *iter = type_specifiers, **ast_iter = &ast->type_specifiers;
+    for (SpecifierListAST *iter = type_specifier_list, **ast_iter = &ast->type_specifier_list;
          iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
         *ast_iter = new (pool) SpecifierListAST((iter->value) ? iter->value->clone(pool) : 0);
     if (declarator)
diff --git a/src/shared/cplusplus/ASTMatcher.cpp b/src/shared/cplusplus/ASTMatcher.cpp
index 7ca8582c33c59e8978303cf38b7b356d3a7f2bea..6d2bf04b901c01e1570e4da73b13c2c500ab37fd 100644
--- a/src/shared/cplusplus/ASTMatcher.cpp
+++ b/src/shared/cplusplus/ASTMatcher.cpp
@@ -258,9 +258,9 @@ bool ASTMatcher::match(QtPrivateSlotAST *node, QtPrivateSlotAST *pattern)
 
     pattern->comma_token = node->comma_token;
 
-    if (! pattern->type_specifiers)
-        pattern->type_specifiers = node->type_specifiers;
-    else if (! AST::match(node->type_specifiers, pattern->type_specifiers, this))
+    if (! pattern->type_specifier_list)
+        pattern->type_specifier_list = node->type_specifier_list;
+    else if (! AST::match(node->type_specifier_list, pattern->type_specifier_list, this))
         return false;
 
     if (! pattern->declarator)
@@ -307,9 +307,9 @@ bool ASTMatcher::match(QtPropertyDeclarationAST *node, QtPropertyDeclarationAST
     else if (! AST::match(node->property_name, pattern->property_name, this))
         return false;
 
-    if (! pattern->property_declaration_items)
-        pattern->property_declaration_items = node->property_declaration_items;
-    else if (! AST::match(node->property_declaration_items, pattern->property_declaration_items, this))
+    if (! pattern->property_declaration_item_list)
+        pattern->property_declaration_item_list = node->property_declaration_item_list;
+    else if (! AST::match(node->property_declaration_item_list, pattern->property_declaration_item_list, this))
         return false;
 
     pattern->rparen_token = node->rparen_token;
@@ -778,9 +778,9 @@ bool ASTMatcher::match(FunctionDeclaratorAST *node, FunctionDeclaratorAST *patte
 
     pattern->lparen_token = node->lparen_token;
 
-    if (! pattern->parameters)
-        pattern->parameters = node->parameters;
-    else if (! AST::match(node->parameters, pattern->parameters, this))
+    if (! pattern->parameter_declaration_clause)
+        pattern->parameter_declaration_clause = node->parameter_declaration_clause;
+    else if (! AST::match(node->parameter_declaration_clause, pattern->parameter_declaration_clause, this))
         return false;
 
     pattern->rparen_token = node->rparen_token;
@@ -2804,9 +2804,9 @@ bool ASTMatcher::match(TrailingReturnTypeAST *node, TrailingReturnTypeAST *patte
     else if (! AST::match(node->attributes, pattern->attributes, this))
         return false;
 
-    if (! pattern->type_specifiers)
-        pattern->type_specifiers = node->type_specifiers;
-    else if (! AST::match(node->type_specifiers, pattern->type_specifiers, this))
+    if (! pattern->type_specifier_list)
+        pattern->type_specifier_list = node->type_specifier_list;
+    else if (! AST::match(node->type_specifier_list, pattern->type_specifier_list, this))
         return false;
 
     if (! pattern->declarator)
diff --git a/src/shared/cplusplus/ASTPatternBuilder.h b/src/shared/cplusplus/ASTPatternBuilder.h
index 3f03f99586ae723245a125e122eaf4d34377e525..2d8ee5d5ba93018640ef1c6ab73e9b7f0315c588 100644
--- a/src/shared/cplusplus/ASTPatternBuilder.h
+++ b/src/shared/cplusplus/ASTPatternBuilder.h
@@ -215,7 +215,7 @@ public:
     FunctionDeclaratorAST *FunctionDeclarator(ParameterDeclarationClauseAST *parameters = 0, ExceptionSpecificationAST *exception_specification = 0, ExpressionAST *as_cpp_initializer = 0)
     {
         FunctionDeclaratorAST *__ast = new (&pool) FunctionDeclaratorAST;
-        __ast->parameters = parameters;
+        __ast->parameter_declaration_clause = parameters;
         __ast->exception_specification = exception_specification;
         __ast->as_cpp_initializer = as_cpp_initializer;
         return __ast;
@@ -284,7 +284,7 @@ public:
         return __ast;
     }
 
-    ExpressionOrDeclarationStatementAST *ExpressionOrDeclarationStatement(StatementAST *expression = 0, StatementAST *declaration = 0)
+    ExpressionOrDeclarationStatementAST *ExpressionOrDeclarationStatement(ExpressionStatementAST *expression = 0, DeclarationStatementAST *declaration = 0)
     {
         ExpressionOrDeclarationStatementAST *__ast = new (&pool) ExpressionOrDeclarationStatementAST;
         __ast->expression = expression;
diff --git a/src/shared/cplusplus/ASTVisit.cpp b/src/shared/cplusplus/ASTVisit.cpp
index be0ffe01a25f1e63c748d6e6becb1dfe01b07bd2..b355088b264b8b992f5d9883e0573f05b486bc38 100644
--- a/src/shared/cplusplus/ASTVisit.cpp
+++ b/src/shared/cplusplus/ASTVisit.cpp
@@ -133,7 +133,7 @@ void QtObjectTagAST::accept0(ASTVisitor *visitor)
 void QtPrivateSlotAST::accept0(ASTVisitor *visitor)
 {
     if (visitor->visit(this)) {
-        accept(type_specifiers, visitor);
+        accept(type_specifier_list, visitor);
         accept(declarator, visitor);
     }
     visitor->endVisit(this);
@@ -152,7 +152,7 @@ void QtPropertyDeclarationAST::accept0(ASTVisitor *visitor)
     if (visitor->visit(this)) {
         accept(type_id, visitor);
         accept(property_name, visitor);
-        accept(property_declaration_items, visitor);
+        accept(property_declaration_item_list, visitor);
     }
     visitor->endVisit(this);
 }
@@ -355,7 +355,7 @@ void NestedDeclaratorAST::accept0(ASTVisitor *visitor)
 void FunctionDeclaratorAST::accept0(ASTVisitor *visitor)
 {
     if (visitor->visit(this)) {
-        accept(parameters, visitor);
+        accept(parameter_declaration_clause, visitor);
         accept(cv_qualifier_list, visitor);
         accept(exception_specification, visitor);
         accept(trailing_return_type, visitor);
@@ -1211,7 +1211,7 @@ void TrailingReturnTypeAST::accept0(ASTVisitor *visitor)
 {
     if (visitor->visit(this)) {
         accept(attributes, visitor);
-        accept(type_specifiers, visitor);
+        accept(type_specifier_list, visitor);
         accept(declarator, visitor);
     }
     visitor->endVisit(this);
diff --git a/src/shared/cplusplus/ASTfwd.h b/src/shared/cplusplus/ASTfwd.h
index 9812c824539691e7229c67d4be466af3ae538658..fd854c46cd1fd6e88d5d6e25be7f197ff2bcfd32 100644
--- a/src/shared/cplusplus/ASTfwd.h
+++ b/src/shared/cplusplus/ASTfwd.h
@@ -226,6 +226,7 @@ typedef List<QtPropertyDeclarationItemAST *> QtPropertyDeclarationItemListAST;
 typedef List<NameAST *> NameListAST;
 typedef List<QtInterfaceNameAST *> QtInterfaceNameListAST;
 
+typedef List<ParameterDeclarationAST *> ParameterDeclarationListAST;
 typedef List<CaptureAST *> CaptureListAST;
 
 typedef List<ObjCMessageArgumentAST *> ObjCMessageArgumentListAST;
diff --git a/src/shared/cplusplus/Bind.cpp b/src/shared/cplusplus/Bind.cpp
index 216e2c36f528efdc2e23d12a11e04bb27e9b4d02..6c0319538c78cade4cf69e03ab3cb1d4823b3c65 100644
--- a/src/shared/cplusplus/Bind.cpp
+++ b/src/shared/cplusplus/Bind.cpp
@@ -830,7 +830,7 @@ void Bind::parameterDeclarationClause(ParameterDeclarationClauseAST *ast, unsign
 
     Scope *previousScope = switchScope(fun);
 
-    for (DeclarationListAST *it = ast->parameter_declaration_list; it; it = it->next) {
+    for (ParameterDeclarationListAST *it = ast->parameter_declaration_list; it; it = it->next) {
         this->declaration(it->value);
     }
 
@@ -1128,7 +1128,7 @@ FullySpecifiedType Bind::trailingReturnType(TrailingReturnTypeAST *ast, const Fu
     for (SpecifierListAST *it = ast->attributes; it; it = it->next) {
         type = this->specifier(it->value, type);
     }
-    for (SpecifierListAST *it = ast->type_specifiers; it; it = it->next) {
+    for (SpecifierListAST *it = ast->type_specifier_list; it; it = it->next) {
         type = this->specifier(it->value, type);
     }
     DeclaratorIdAST *declaratorId = 0;
@@ -1831,7 +1831,7 @@ bool Bind::visit(QtPrivateSlotAST *ast)
     // unsigned dptr_rparen_token = ast->dptr_rparen_token;
     // unsigned comma_token = ast->comma_token;
     FullySpecifiedType type;
-    for (SpecifierListAST *it = ast->type_specifiers; it; it = it->next) {
+    for (SpecifierListAST *it = ast->type_specifier_list; it; it = it->next) {
         type = this->specifier(it->value, type);
     }
     DeclaratorIdAST *declaratorId = 0;
@@ -1846,7 +1846,7 @@ bool Bind::visit(QtPropertyDeclarationAST *ast)
     // unsigned lparen_token = ast->lparen_token;
     ExpressionTy type_id = this->expression(ast->type_id);
     /*const Name *property_name =*/ this->name(ast->property_name);
-    for (QtPropertyDeclarationItemListAST *it = ast->property_declaration_items; it; it = it->next) {
+    for (QtPropertyDeclarationItemListAST *it = ast->property_declaration_item_list; it; it = it->next) {
         this->qtPropertyDeclarationItem(it->value);
     }
     // unsigned rparen_token = ast->rparen_token;
@@ -2882,7 +2882,7 @@ bool Bind::visit(FunctionDeclaratorAST *ast)
     fun->setReturnType(_type);
 
     // unsigned lparen_token = ast->lparen_token;
-    this->parameterDeclarationClause(ast->parameters, ast->lparen_token, fun);
+    this->parameterDeclarationClause(ast->parameter_declaration_clause, ast->lparen_token, fun);
     // unsigned rparen_token = ast->rparen_token;
     FullySpecifiedType type(fun);
     for (SpecifierListAST *it = ast->cv_qualifier_list; it; it = it->next) {
diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp
index 522aaf17843cc81ca3bd69c5822ef608511baebc..a2747caa2be2d08a3c42ffe26ec7559ac9dd0690 100644
--- a/src/shared/cplusplus/Parser.cpp
+++ b/src/shared/cplusplus/Parser.cpp
@@ -1338,7 +1338,7 @@ bool Parser::parseDeclarator(DeclaratorAST *&node, SpecifierListAST *decl_specif
 
                                 FunctionDeclaratorAST *ast = new (_pool) FunctionDeclaratorAST;
                                 ast->lparen_token = lparen_token;
-                                ast->parameters = parameter_declaration_clause;
+                                ast->parameter_declaration_clause = parameter_declaration_clause;
                                 ast->as_cpp_initializer = initializer;
                                 ast->rparen_token = rparen_token;
                                 *postfix_ptr = new (_pool) PostfixDeclaratorListAST(ast);
@@ -1362,7 +1362,7 @@ bool Parser::parseDeclarator(DeclaratorAST *&node, SpecifierListAST *decl_specif
 
             FunctionDeclaratorAST *ast = new (_pool) FunctionDeclaratorAST;
             ast->lparen_token = consumeToken();
-            parseParameterDeclarationClause(ast->parameters);
+            parseParameterDeclarationClause(ast->parameter_declaration_clause);
             if (LA() != T_RPAREN) {
                 rewind(startOfPostDeclarator);
                 break;
@@ -1457,7 +1457,7 @@ bool Parser::parseAbstractDeclarator(DeclaratorAST *&node, SpecifierListAST *dec
         if (LA() == T_LPAREN) {
             FunctionDeclaratorAST *ast = new (_pool) FunctionDeclaratorAST;
             ast->lparen_token = consumeToken();
-            if (LA() == T_RPAREN || parseParameterDeclarationClause(ast->parameters)) {
+            if (LA() == T_RPAREN || parseParameterDeclarationClause(ast->parameter_declaration_clause)) {
                 if (LA() == T_RPAREN)
                     ast->rparen_token = consumeToken();
             }
@@ -1557,7 +1557,9 @@ bool Parser::parseTemplateParameter(DeclarationAST *&node)
     if (parseTypeParameter(node))
         return true;
     bool previousTemplateArguments = switchTemplateArguments(true);
-    bool parsed = parseParameterDeclaration(node);
+    ParameterDeclarationAST *ast = 0;
+    bool parsed = parseParameterDeclaration(ast);
+    node = ast;
     (void) switchTemplateArguments(previousTemplateArguments);
     return parsed;
 }
@@ -1669,7 +1671,7 @@ bool Parser::parseParameterDeclarationClause(ParameterDeclarationClauseAST *&nod
     if (LA() == T_RPAREN)
         return true; // nothing to do
 
-    DeclarationListAST *parameter_declarations = 0;
+    ParameterDeclarationListAST *parameter_declarations = 0;
 
     unsigned dot_dot_dot_token = 0;
     if (LA() == T_DOT_DOT_DOT)
@@ -1695,16 +1697,16 @@ bool Parser::parseParameterDeclarationClause(ParameterDeclarationClauseAST *&nod
     return true;
 }
 
-bool Parser::parseParameterDeclarationList(DeclarationListAST *&node)
+bool Parser::parseParameterDeclarationList(ParameterDeclarationListAST *&node)
 {
     DEBUG_THIS_RULE();
     if (LA() == T_DOT_DOT_DOT || (LA() == T_COMMA && LA(2) == T_DOT_DOT_DOT))
         return false; // nothing to do.
 
-    DeclarationListAST **parameter_declaration_ptr = &node;
-    DeclarationAST *declaration = 0;
+    ParameterDeclarationListAST **parameter_declaration_ptr = &node;
+    ParameterDeclarationAST *declaration = 0;
     if (parseParameterDeclaration(declaration)) {
-        *parameter_declaration_ptr = new (_pool) DeclarationListAST;
+        *parameter_declaration_ptr = new (_pool) ParameterDeclarationListAST;
         (*parameter_declaration_ptr)->value = declaration;
         parameter_declaration_ptr = &(*parameter_declaration_ptr)->next;
         while (LA() == T_COMMA) {
@@ -1715,7 +1717,7 @@ bool Parser::parseParameterDeclarationList(DeclarationListAST *&node)
 
             declaration = 0;
             if (parseParameterDeclaration(declaration)) {
-                *parameter_declaration_ptr = new (_pool) DeclarationListAST;
+                *parameter_declaration_ptr = new (_pool) ParameterDeclarationListAST;
                 (*parameter_declaration_ptr)->value = declaration;
                 parameter_declaration_ptr = &(*parameter_declaration_ptr)->next;
             }
@@ -1725,7 +1727,7 @@ bool Parser::parseParameterDeclarationList(DeclarationListAST *&node)
     return false;
 }
 
-bool Parser::parseParameterDeclaration(DeclarationAST *&node)
+bool Parser::parseParameterDeclaration(ParameterDeclarationAST *&node)
 {
     DEBUG_THIS_RULE();
     SpecifierListAST *decl_specifier_seq = 0;
@@ -1950,7 +1952,7 @@ bool Parser::parseQtPropertyDeclaration(DeclarationAST *&node)
         }
 
         ast->property_name = property_name;
-        QtPropertyDeclarationItemListAST **iter = &ast->property_declaration_items;
+        QtPropertyDeclarationItemListAST **iter = &ast->property_declaration_item_list;
         while (true) {
             if (LA() == T_RPAREN) {
                 ast->rparen_token = consumeToken();
@@ -2175,8 +2177,8 @@ bool Parser::parseMemberSpecification(DeclarationAST *&node, ClassSpecifierAST *
             match(T_RPAREN, &ast->dptr_rparen_token);
         }
         match(T_COMMA, &ast->comma_token);
-        (void) parseTypeSpecifier(ast->type_specifiers);
-        parseDeclarator(ast->declarator, ast->type_specifiers);
+        (void) parseTypeSpecifier(ast->type_specifier_list);
+        parseDeclarator(ast->declarator, ast->type_specifier_list);
         match(T_RPAREN, &ast->rparen_token);
         node = ast;
     }   return true;
@@ -5525,7 +5527,7 @@ bool Parser::parseObjCMethodPrototype(ObjCMethodPrototypeAST *&node)
             }
 
             // TODO: Is this still valid, and if so, should it be stored in the AST? (EV)
-            DeclarationAST *parameter_declaration = 0;
+            ParameterDeclarationAST *parameter_declaration = 0;
             parseParameterDeclaration(parameter_declaration);
         }
     } else if (lookAtObjCSelector()) {
@@ -5860,8 +5862,8 @@ bool Parser::parseTrailingReturnType(TrailingReturnTypeAST *&node)
     while (parseAttributeSpecifier(*attr))
         attr = &(*attr)->next;
 
-    parseTrailingTypeSpecifierSeq(ast->type_specifiers);
-    parseAbstractDeclarator(ast->declarator, ast->type_specifiers);
+    parseTrailingTypeSpecifierSeq(ast->type_specifier_list);
+    parseAbstractDeclarator(ast->declarator, ast->type_specifier_list);
     node = ast;
     return true;
 }
diff --git a/src/shared/cplusplus/Parser.h b/src/shared/cplusplus/Parser.h
index 60c9defb5db45155f0ac43c86d5241dd5894d931..ccd19673aadf1cd40bc062bc421213e7323171fa 100644
--- a/src/shared/cplusplus/Parser.h
+++ b/src/shared/cplusplus/Parser.h
@@ -163,9 +163,9 @@ public:
     bool parseOperator(OperatorAST *&node);
     bool parseConversionFunctionId(NameAST *&node);
     bool parseOperatorFunctionId(NameAST *&node);
-    bool parseParameterDeclaration(DeclarationAST *&node);
+    bool parseParameterDeclaration(ParameterDeclarationAST *&node);
     bool parseParameterDeclarationClause(ParameterDeclarationClauseAST *&node);
-    bool parseParameterDeclarationList(DeclarationListAST *&node);
+    bool parseParameterDeclarationList(ParameterDeclarationListAST *&node);
     bool parsePmExpression(ExpressionAST *&node);
     bool parseTypeidExpression(ExpressionAST *&node);
     bool parseTypenameCallExpression(ExpressionAST *&node);
diff --git a/tests/auto/cplusplus/ast/tst_ast.cpp b/tests/auto/cplusplus/ast/tst_ast.cpp
index 56869fe1010d0978c1504e7becf284bcd8fdcd3d..c1caa651d728e5e0467228226e4f90a9107dbeea 100644
--- a/tests/auto/cplusplus/ast/tst_ast.cpp
+++ b/tests/auto/cplusplus/ast/tst_ast.cpp
@@ -641,17 +641,17 @@ void tst_AST::cpp_initializer_or_function_declaration()
     FunctionDeclaratorAST *fun_declarator = declarator->postfix_declarator_list->value->asFunctionDeclarator();
     QVERIFY(fun_declarator != 0);
     QCOMPARE(fun_declarator->lparen_token, 3U);
-    QVERIFY(fun_declarator->parameters != 0);
+    QVERIFY(fun_declarator->parameter_declaration_clause != 0);
     QCOMPARE(fun_declarator->rparen_token, 5U);
 
     // check the formal arguments
-    ParameterDeclarationClauseAST *param_clause = fun_declarator->parameters;
+    ParameterDeclarationClauseAST *param_clause = fun_declarator->parameter_declaration_clause;
     QVERIFY(param_clause->parameter_declaration_list != 0);
     QVERIFY(param_clause->parameter_declaration_list->next == 0);
     QCOMPARE(param_clause->dot_dot_dot_token, 0U);
 
     // check the parameter
-    DeclarationListAST *declarations = param_clause->parameter_declaration_list;
+    ParameterDeclarationListAST *declarations = param_clause->parameter_declaration_list;
     QVERIFY(declarations);
     QVERIFY(declarations->value);
     QVERIFY(! declarations->next);
diff --git a/tests/manual/cplusplus-dump/dumpers.inc b/tests/manual/cplusplus-dump/dumpers.inc
index 99e69a2a49413849ea405fe019e8bbf65ded970c..c3d4635ee3f8b1d1ba0452a1b37985fb0584b0d7 100644
--- a/tests/manual/cplusplus-dump/dumpers.inc
+++ b/tests/manual/cplusplus-dump/dumpers.inc
@@ -172,7 +172,7 @@ virtual bool visit(QtPrivateSlotAST *ast)
         terminal(ast->dptr_rparen_token, ast);
     if (ast->comma_token)
         terminal(ast->comma_token, ast);
-    for (SpecifierListAST *iter = ast->type_specifiers; iter; iter = iter->next)
+    for (SpecifierListAST *iter = ast->type_specifier_list; iter; iter = iter->next)
         nonterminal(iter->value);
     nonterminal(ast->declarator);
     if (ast->rparen_token)
@@ -196,7 +196,7 @@ virtual bool visit(QtPropertyDeclarationAST *ast)
         terminal(ast->lparen_token, ast);
     nonterminal(ast->type_id);
     nonterminal(ast->property_name);
-    for (QtPropertyDeclarationItemListAST *iter = ast->property_declaration_items; iter; iter = iter->next)
+    for (QtPropertyDeclarationItemListAST *iter = ast->property_declaration_item_list; iter; iter = iter->next)
         nonterminal(iter->value);
     if (ast->rparen_token)
         terminal(ast->rparen_token, ast);
@@ -466,7 +466,7 @@ virtual bool visit(FunctionDeclaratorAST *ast)
 {
     if (ast->lparen_token)
         terminal(ast->lparen_token, ast);
-    nonterminal(ast->parameters);
+    nonterminal(ast->parameter_declaration_clause);
     if (ast->rparen_token)
         terminal(ast->rparen_token, ast);
     for (SpecifierListAST *iter = ast->cv_qualifier_list; iter; iter = iter->next)
@@ -893,7 +893,7 @@ virtual bool visit(ParameterDeclarationAST *ast)
 
 virtual bool visit(ParameterDeclarationClauseAST *ast)
 {
-    for (DeclarationListAST *iter = ast->parameter_declaration_list; iter; iter = iter->next)
+    for (ParameterDeclarationListAST *iter = ast->parameter_declaration_list; iter; iter = iter->next)
         nonterminal(iter->value);
     if (ast->dot_dot_dot_token)
         terminal(ast->dot_dot_dot_token, ast);
@@ -1594,7 +1594,7 @@ virtual bool visit(TrailingReturnTypeAST *ast)
         terminal(ast->arrow_token, ast);
     for (SpecifierListAST *iter = ast->attributes; iter; iter = iter->next)
         nonterminal(iter->value);
-    for (SpecifierListAST *iter = ast->type_specifiers; iter; iter = iter->next)
+    for (SpecifierListAST *iter = ast->type_specifier_list; iter; iter = iter->next)
         nonterminal(iter->value);
     nonterminal(ast->declarator);
     return false;