From: Daniel Jasper Date: Fri, 28 Mar 2014 15:06:01 +0000 (+0000) Subject: clang-format: Fix aligning of comments and escaped newlines in macros. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2c79e2c95bbe3bce5fbe19b1cc76c7dcea4002f8;p=clang clang-format: Fix aligning of comments and escaped newlines in macros. Before: #define A \ int i; /*a*/ \ int jjj; /*b*/ After: #define A \ int i; /*a*/ \ int jjj; /*b*/ git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205011 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Format/WhitespaceManager.cpp b/lib/Format/WhitespaceManager.cpp index 26a8d41e87..4c393ed439 100644 --- a/lib/Format/WhitespaceManager.cpp +++ b/lib/Format/WhitespaceManager.cpp @@ -193,6 +193,10 @@ void WhitespaceManager::alignTrailingComments(unsigned Start, unsigned End, if (Changes[i].IsTrailingComment) { assert(Column >= Changes[i].StartOfTokenColumn); Changes[i].Spaces += Column - Changes[i].StartOfTokenColumn; + if (i + 1 != End) { + Changes[i + 1].PreviousEndOfTokenColumn += + Column - Changes[i].StartOfTokenColumn; + } Changes[i].StartOfTokenColumn = Column; } } diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index 2bf5512576..7332fd04e0 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -946,6 +946,11 @@ TEST_F(FormatTest, UnderstandsBlockComments) { " /* parameter 3 */ aaaaaa,\n" " /* parameter 4 */ aaaaaa);", NoBinPacking); + + // Aligning block comments in macros. + verifyGoogleFormat("#define A \\\n" + " int i; /*a*/ \\\n" + " int jjj; /*b*/"); } TEST_F(FormatTest, AlignsBlockComments) {