diff options
| -rw-r--r-- | clang/lib/Format/WhitespaceManager.cpp | 3 | ||||
| -rw-r--r-- | clang/unittests/Format/FormatTest.cpp | 11 | 
2 files changed, 13 insertions, 1 deletions
diff --git a/clang/lib/Format/WhitespaceManager.cpp b/clang/lib/Format/WhitespaceManager.cpp index cea47997431..2906b17d7b0 100644 --- a/clang/lib/Format/WhitespaceManager.cpp +++ b/clang/lib/Format/WhitespaceManager.cpp @@ -154,8 +154,9 @@ void WhitespaceManager::alignTrailingComments() {        continue;      unsigned ChangeMinColumn = Changes[i].StartOfTokenColumn; -    // FIXME: Correctly handle ChangeMaxColumn in PP directives.      unsigned ChangeMaxColumn = Style.ColumnLimit - Changes[i].TokenLength; +    if (i + 1 != e && Changes[i + 1].ContinuesPPDirective) +      ChangeMaxColumn -= 2;      // If this comment follows an } in column 0, it probably documents the      // closing of a namespace and we don't want to align it.      bool FollowsRBraceInColumn0 = i > 0 && Changes[i].NewlinesBefore == 0 && diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp index 398850c38ac..d18968afd5a 100644 --- a/clang/unittests/Format/FormatTest.cpp +++ b/clang/unittests/Format/FormatTest.cpp @@ -832,6 +832,17 @@ TEST_F(FormatTest, UnderstandsSingleLineComments) {                     " // first\n"                     "// at start\n"                     "otherLine();")); + +  verifyFormat( +      "#define A                                                  \\\n" +      "  int i; /* iiiiiiiiiiiiiiiiiiiii */                       \\\n" +      "  int jjjjjjjjjjjjjjjjjjjjjjjj; /* */", +      getLLVMStyleWithColumns(60)); +  verifyFormat( +      "#define A                                                   \\\n" +      "  int i;                        /* iiiiiiiiiiiiiiiiiiiii */ \\\n" +      "  int jjjjjjjjjjjjjjjjjjjjjjjj; /* */", +      getLLVMStyleWithColumns(61));  }  TEST_F(FormatTest, KeepsParameterWithTrailingCommentsOnTheirOwnLine) {  | 

