diff options
author | Francois Ferrand <thetypz@gmail.com> | 2015-02-26 16:06:10 +0100 |
---|---|---|
committer | Francois Ferrand <thetypz@gmail.com> | 2015-02-27 14:49:55 +0000 |
commit | 1336502f588b3bbcfa33fd57b449174eee9711e9 (patch) | |
tree | 8892e9bf78de533e7a19a6aa0f3eed870a9124b9 /src/libs/3rdparty/cplusplus/Parser.cpp | |
parent | 672ab5c8d80f393849a938f46c70d5dcfb87e440 (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.cpp | 8 |
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; } |