Skip to content

Commit 3d4d9d7

Browse files
committed
[clang-format] Fix anonymous reference parameter with default value
1 parent b1575f9 commit 3d4d9d7

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

clang/lib/Format/WhitespaceManager.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -475,6 +475,9 @@ AlignTokenSequence(const FormatStyle &Style, unsigned Start, unsigned End,
475475
Previous >= 0 &&
476476
Changes[Previous].Tok->getType() == TT_PointerOrReference;
477477
--Previous) {
478+
// Don't align function default argument using return type maximum size
479+
if (Changes[Previous + 1].Tok->is(tok::equal))
480+
continue;
478481
assert(Changes[Previous].Tok->isPointerOrReference());
479482
if (Changes[Previous].Tok->isNot(tok::star)) {
480483
if (ReferenceNotRightAligned)

clang/unittests/Format/FormatTest.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19056,6 +19056,9 @@ TEST_F(FormatTest, AlignConsecutiveDeclarations) {
1905619056
verifyFormat("int a(int x);\n"
1905719057
"double b();",
1905819058
Alignment);
19059+
verifyFormat("int a(const Test & = Test());\n"
19060+
"double b();",
19061+
Alignment);
1905919062
verifyFormat("struct Test {\n"
1906019063
" Test(const Test &) = default;\n"
1906119064
" ~Test() = default;\n"
@@ -19277,6 +19280,10 @@ TEST_F(FormatTest, AlignConsecutiveDeclarations) {
1927719280
"int foobar;",
1927819281
AlignmentLeft);
1927919282

19283+
verifyFormat("int a(const Test& = Test());\n"
19284+
"double b();",
19285+
AlignmentLeft);
19286+
1928019287
// PAS_Middle
1928119288
FormatStyle AlignmentMiddle = Alignment;
1928219289
AlignmentMiddle.PointerAlignment = FormatStyle::PAS_Middle;

0 commit comments

Comments
 (0)