[clang-format] Fix indentation for array variables with alignment of consecutive assignments and declarations.

Fixes https://github.com/llvm/llvm-project/issues/52914.

Reviewed By: HazardyKnusperkeks, owenpan

Differential Revision: https://reviews.llvm.org/D116527
This commit is contained in:
Marek Kurdej 2022-01-05 13:41:50 +01:00
parent 38f69eb77e
commit 5109737c92
2 changed files with 12 additions and 0 deletions

View File

@ -368,6 +368,13 @@ AlignTokenSequence(const FormatStyle &Style, unsigned Start, unsigned End,
Changes[i].Tok->Previous->is(TT_ConditionalExpr))
return true;
// Continued braced list.
if (ScopeStart > Start + 1 &&
Changes[ScopeStart - 2].Tok->isNot(tok::identifier) &&
Changes[ScopeStart - 1].Tok->is(tok::l_brace) &&
Changes[i].Tok->isNot(tok::r_brace))
return true;
return false;
};

View File

@ -16427,6 +16427,11 @@ TEST_F(FormatTest, AlignConsecutiveDeclarations) {
" double bar();\n"
"};\n",
Alignment);
// http://llvm.org/PR52914
verifyFormat("char *a[] = {\"a\", // comment\n"
" \"bb\"};\n"
"int bbbbbbb = 0;",
Alignment);
// PAS_Right
EXPECT_EQ("void SomeFunction(int parameter = 0) {\n"