Skip to content

Commit d3272fe

Browse files
owencagithub-actions[bot]
authored andcommitted
Automerge: [clang-format] Fix a bug in AlignConsecutiveDeclarations (#135516)
Fix #109768
2 parents a91c4ba + 5f11d64 commit d3272fe

File tree

2 files changed

+13
-8
lines changed

2 files changed

+13
-8
lines changed

clang/lib/Format/WhitespaceManager.cpp

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1012,13 +1012,8 @@ void WhitespaceManager::alignConsecutiveDeclarations() {
10121012
AlignTokens(
10131013
Style,
10141014
[&](Change const &C) {
1015-
if (Style.AlignConsecutiveDeclarations.AlignFunctionPointers) {
1016-
for (const auto *Prev = C.Tok->Previous; Prev; Prev = Prev->Previous)
1017-
if (Prev->is(tok::equal))
1018-
return false;
1019-
if (C.Tok->is(TT_FunctionTypeLParen))
1020-
return true;
1021-
}
1015+
if (C.Tok->is(TT_FunctionTypeLParen))
1016+
return Style.AlignConsecutiveDeclarations.AlignFunctionPointers;
10221017
if (C.Tok->is(TT_FunctionDeclarationName))
10231018
return Style.AlignConsecutiveDeclarations.AlignFunctionDeclarations;
10241019
if (C.Tok->isNot(TT_StartOfName))

clang/unittests/Format/FormatTest.cpp

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20204,6 +20204,16 @@ TEST_F(FormatTest, AlignConsecutiveDeclarations) {
2020420204
"double b();",
2020520205
AlignmentLeft);
2020620206

20207+
auto Style = AlignmentLeft;
20208+
Style.AlignConsecutiveDeclarations.AlignFunctionPointers = true;
20209+
Style.BinPackParameters = FormatStyle::BPPS_OnePerLine;
20210+
verifyFormat("int function_name(const wchar_t* title,\n"
20211+
" int x = 0,\n"
20212+
" long extraStyle = 0,\n"
20213+
" bool readOnly = false,\n"
20214+
" FancyClassType* module = nullptr);",
20215+
Style);
20216+
2020720217
// PAS_Middle
2020820218
FormatStyle AlignmentMiddle = Alignment;
2020920219
AlignmentMiddle.PointerAlignment = FormatStyle::PAS_Middle;
@@ -20435,7 +20445,7 @@ TEST_F(FormatTest, AlignConsecutiveDeclarations) {
2043520445
Alignment);
2043620446

2043720447
// See PR37175
20438-
FormatStyle Style = getMozillaStyle();
20448+
Style = getMozillaStyle();
2043920449
Style.AlignConsecutiveDeclarations.Enabled = true;
2044020450
verifyFormat("DECOR1 /**/ int8_t /**/ DECOR2 /**/\n"
2044120451
"foo(int a);",

0 commit comments

Comments
 (0)