summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus/ASTClone.cpp
diff options
context:
space:
mode:
authorRoberto Raggi <roberto.raggi@nokia.com>2010-03-25 12:15:38 +0100
committerRoberto Raggi <roberto.raggi@nokia.com>2010-03-25 12:16:18 +0100
commitfe261bc256abb3e470a0e33a4b7569307e973db5 (patch)
tree6f359760d060f3a347e060ae4647ac92639ef252 /src/shared/cplusplus/ASTClone.cpp
parent1bdae0815d20f9a93c57b14f52dd69a808b739c6 (diff)
downloadqt-creator-fe261bc256abb3e470a0e33a4b7569307e973db5.tar.gz
Parse C++ 0x argument packs.
Diffstat (limited to 'src/shared/cplusplus/ASTClone.cpp')
-rw-r--r--src/shared/cplusplus/ASTClone.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/shared/cplusplus/ASTClone.cpp b/src/shared/cplusplus/ASTClone.cpp
index 42b4ed6600..73237e1765 100644
--- a/src/shared/cplusplus/ASTClone.cpp
+++ b/src/shared/cplusplus/ASTClone.cpp
@@ -1083,6 +1083,7 @@ SizeofExpressionAST *SizeofExpressionAST::clone(MemoryPool *pool) const
{
SizeofExpressionAST *ast = new (pool) SizeofExpressionAST;
ast->sizeof_token = sizeof_token;
+ ast->dot_dot_dot_token = dot_dot_dot_token;
ast->lparen_token = lparen_token;
if (expression)
ast->expression = expression->clone(pool);
@@ -1659,3 +1660,15 @@ TrailingReturnTypeAST *TrailingReturnTypeAST::clone(MemoryPool *pool) const
return ast;
}
+BracedInitializerAST *BracedInitializerAST::clone(MemoryPool *pool) const
+{
+ BracedInitializerAST *ast = new (pool) BracedInitializerAST;
+ ast->lbrace_token = lbrace_token;
+ for (ExpressionListAST *iter = expression_list, **ast_iter = &ast->expression_list;
+ iter; iter = iter->next, ast_iter = &(*ast_iter)->next)
+ *ast_iter = new (pool) ExpressionListAST((iter->value) ? iter->value->clone(pool) : 0);
+ ast->comma_token = comma_token;
+ ast->rbrace_token = rbrace_token;
+ return ast;
+}
+