Skip to content

Commit 034ad1c

Browse files
authored
Fix #14468: Missing varid for nested struct members with designated initializers (#8466)
1 parent 6d28ccf commit 034ad1c

2 files changed

Lines changed: 5 additions & 1 deletion

File tree

lib/tokenize.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4496,6 +4496,10 @@ static void setVarIdStructMembers(Token *&tok1,
44964496
tok->varId(it->second);
44974497
}
44984498
}
4499+
if (Token::Match(tok, "%name% = { . %name% =|{")) {
4500+
setVarIdStructMembers(tok, structMembers, varId);
4501+
tok = tok->linkAt(2);
4502+
}
44994503
tok = tok->next();
45004504
}
45014505

test/testvarid.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4500,7 +4500,7 @@ class TestVarID : public TestFixture {
45004500
"2: struct T { struct S s ; } ;\n"
45014501
"3: struct U { struct T t ; } ;\n"
45024502
"4: void f ( ) {\n"
4503-
"5: struct U u@4 ; u@4 = { .@UNIQUE t@5 = { . s = { . s = 1 } } } ;\n"
4503+
"5: struct U u@4 ; u@4 = { .@UNIQUE t@5 = { .@UNIQUE s@6 = { .@UNIQUE s@7 = 1 } } } ;\n"
45044504
"6: }\n";
45054505
ASSERT_EQUALS(exp, tokenizeExpr(code));
45064506
}

0 commit comments

Comments
 (0)