From: Daniel Jasper Date: Tue, 4 Oct 2016 20:18:25 +0000 (+0000) Subject: clang-format: Fix bad multi-variable for-loop formatting. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9c15a0692d502cdd521dbfd0b5428c5f65a471f1;p=clang clang-format: Fix bad multi-variable for-loop formatting. Before: for (int*p, *q; p != q; p = p->next) { After: for (int *p, *q; p != q; p = p->next) { git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@283246 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Format/TokenAnnotator.cpp b/lib/Format/TokenAnnotator.cpp index 428a068889..ae054dd845 100644 --- a/lib/Format/TokenAnnotator.cpp +++ b/lib/Format/TokenAnnotator.cpp @@ -2020,7 +2020,9 @@ bool TokenAnnotator::spaceRequiredBetween(const AnnotatedLine &Line, Left.Previous->is(tok::r_paren)) || (!Left.isOneOf(TT_PointerOrReference, tok::l_paren) && (Style.PointerAlignment != FormatStyle::PAS_Left || - (Line.IsMultiVariableDeclStmt && Left.NestingLevel == 0)))); + (Line.IsMultiVariableDeclStmt && + (Left.NestingLevel == 0 || + (Left.NestingLevel == 1 && Line.First->is(tok::kw_for))))))); if (Right.is(TT_FunctionTypeLParen) && Left.isNot(tok::l_paren) && (!Left.is(TT_PointerOrReference) || (Style.PointerAlignment != FormatStyle::PAS_Right && diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index 06a7e7ee91..f04f5e5dc0 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -4803,6 +4803,7 @@ TEST_F(FormatTest, DeclarationsOfMultipleVariables) { " *b = bbbbbbbbbbbbbbbbbbb, *d = ddddddddddddddddddd;", Style); verifyFormat("vector a, b;", Style); + verifyFormat("for (int *p, *q; p != q; p = p->next) {\n}", Style); } TEST_F(FormatTest, ConditionalExpressionsInBrackets) {