diff --git a/src/tokenize.cpp b/src/tokenize.cpp index e3683aa42..3cbdba3c5 100644 --- a/src/tokenize.cpp +++ b/src/tokenize.cpp @@ -2511,6 +2511,8 @@ void Tokenizer::simplifyVarDecl() { while (tok2 && tok2->str() != ",") { + if (tok2->str() == "{") + tok2 = tok2->link(); tok2 = tok2->next(); } } diff --git a/test/testtokenize.cpp b/test/testtokenize.cpp index 29399e1bb..abe5e13b3 100644 --- a/test/testtokenize.cpp +++ b/test/testtokenize.cpp @@ -140,6 +140,7 @@ private: TEST_CASE(vardecl6); TEST_CASE(vardecl7); TEST_CASE(vardecl8); + TEST_CASE(vardecl9); TEST_CASE(vardecl_stl); TEST_CASE(volatile_variables); TEST_CASE(syntax_error); @@ -2246,6 +2247,14 @@ private: ASSERT_EQUALS(res, tokenizeAndStringify(code)); } + void vardecl9() + { + const char code[] = "char a[2] = {'A', '\\0'}, b[2] = {'B', '\\0'};"; + const char res[] = "char a [ 2 ] = { 'A' , '\\0' } ; char b [ 2 ] = { 'B' , '\\0' } ;"; + + ASSERT_EQUALS(res, tokenizeAndStringify(code)); + } + void volatile_variables() { const char code[] = "volatile int a=0;\n"