aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/3rdparty/cplusplus/Parser.cpp
diff options
context:
space:
mode:
authorFrancois Ferrand <thetypz@gmail.com>2015-02-26 16:06:10 +0100
committerFrancois Ferrand <thetypz@gmail.com>2015-02-27 14:49:55 +0000
commit1336502f588b3bbcfa33fd57b449174eee9711e9 (patch)
tree8892e9bf78de533e7a19a6aa0f3eed870a9124b9 /src/libs/3rdparty/cplusplus/Parser.cpp
parent672ab5c8d80f393849a938f46c70d5dcfb87e440 (diff)
C++: fix parsing nested C99 designated initializers.
Change-Id: Iaa0e7550abf6be77601b1852652bb3d0731d0323 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
Diffstat (limited to 'src/libs/3rdparty/cplusplus/Parser.cpp')
-rw-r--r--src/libs/3rdparty/cplusplus/Parser.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/libs/3rdparty/cplusplus/Parser.cpp b/src/libs/3rdparty/cplusplus/Parser.cpp
index 19bcd358b5..4f44d61465 100644
--- a/src/libs/3rdparty/cplusplus/Parser.cpp
+++ b/src/libs/3rdparty/cplusplus/Parser.cpp
@@ -5696,7 +5696,13 @@ bool Parser::parseDesignatedInitializer(ExpressionAST *&node)
if (LA() == T_EQUAL) {
ast->equal_token = consumeToken();
- if (parseAssignmentExpression(ast->initializer)) {
+
+ if (LA() == T_LBRACE) {
+ if (parseBracedInitList0x(node)) {
+ node = ast;
+ return true;
+ }
+ } else if (parseAssignmentExpression(ast->initializer)) {
node = ast;
return true;
}