summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus/Parser.cpp
diff options
context:
space:
mode:
authorRoberto Raggi <roberto.raggi@nokia.com>2010-03-25 10:43:16 +0100
committerRoberto Raggi <roberto.raggi@nokia.com>2010-03-25 10:44:42 +0100
commit3c8d12562e4baaf99968f5bf1959574ecfe557fb (patch)
tree56f3b51bc8bbd1e8f9b691cc82ad5bd9b0db2583 /src/shared/cplusplus/Parser.cpp
parentddcc40d0fcec541e772e59eb78214fb58819c42a (diff)
downloadqt-creator-3c8d12562e4baaf99968f5bf1959574ecfe557fb.tar.gz
Recognize C++0x sizeof... expressions.
Diffstat (limited to 'src/shared/cplusplus/Parser.cpp')
-rw-r--r--src/shared/cplusplus/Parser.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp
index ec9280f434..a1c6f74f39 100644
--- a/src/shared/cplusplus/Parser.cpp
+++ b/src/shared/cplusplus/Parser.cpp
@@ -4268,6 +4268,11 @@ bool Parser::parseUnaryExpression(ExpressionAST *&node)
SizeofExpressionAST *ast = new (_pool) SizeofExpressionAST;
ast->sizeof_token = consumeToken();
+ // sizeof...(Args)
+ if (_cxx0xEnabled && LA() == T_DOT_DOT_DOT && (LA(2) == T_IDENTIFIER || (LA(2) == T_LPAREN && LA(3) == T_IDENTIFIER
+ && LA(4) == T_RPAREN)))
+ ast->dot_dot_dot_token = consumeToken();
+
if (LA() == T_LPAREN) {
unsigned lparen_token = consumeToken();
if (parseTypeId(ast->expression) && LA() == T_RPAREN) {