Author: krasimir Date: Wed Aug 23 08:58:10 2017 New Revision: 311566 URL: http://llvm.org/viewvc/llvm-project?rev=311566&view=rev Log: Revert "[clang-format] Emit absolute splits before lines for comments"
This reverts commit r311559, which added a test containing raw string literals in macros, which chokes gcc: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55971 Modified: cfe/trunk/lib/Format/BreakableToken.cpp cfe/trunk/unittests/Format/FormatTestComments.cpp Modified: cfe/trunk/lib/Format/BreakableToken.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/BreakableToken.cpp?rev=311566&r1=311565&r2=311566&view=diff ============================================================================== --- cfe/trunk/lib/Format/BreakableToken.cpp (original) +++ cfe/trunk/lib/Format/BreakableToken.cpp Wed Aug 23 08:58:10 2017 @@ -545,18 +545,15 @@ void BreakableBlockComment::insertBreak( } BreakableToken::Split BreakableBlockComment::getSplitBefore( - unsigned LineIndex, unsigned PreviousEndColumn, unsigned ColumnLimit, + unsigned LineIndex, + unsigned PreviousEndColumn, + unsigned ColumnLimit, llvm::Regex &CommentPragmasRegex) const { if (!mayReflow(LineIndex, CommentPragmasRegex)) return Split(StringRef::npos, 0); StringRef TrimmedContent = Content[LineIndex].ltrim(Blanks); - Split Result = getReflowSplit(TrimmedContent, ReflowPrefix, PreviousEndColumn, - ColumnLimit); - // Result is relative to TrimmedContent. Adapt it relative to - // Content[LineIndex]. - if (Result.first != StringRef::npos) - Result.first += Content[LineIndex].size() - TrimmedContent.size(); - return Result; + return getReflowSplit(TrimmedContent, ReflowPrefix, PreviousEndColumn, + ColumnLimit); } unsigned BreakableBlockComment::getReflownColumn( @@ -636,12 +633,17 @@ void BreakableBlockComment::replaceWhite /*CurrentPrefix=*/ReflowPrefix, InPPDirective, /*Newlines=*/0, /*Spaces=*/0); // Check if we need to also insert a break at the whitespace range. + // For this we first adapt the reflow split relative to the beginning of the + // content. // Note that we don't need a penalty for this break, since it doesn't change // the total number of lines. + Split BreakSplit = SplitBefore; + BreakSplit.first += TrimmedContent.data() - Content[LineIndex].data(); unsigned ReflownColumn = getReflownColumn(TrimmedContent, LineIndex, PreviousEndColumn); - if (ReflownColumn > ColumnLimit) - insertBreak(LineIndex, 0, SplitBefore, Whitespaces); + if (ReflownColumn > ColumnLimit) { + insertBreak(LineIndex, 0, BreakSplit, Whitespaces); + } return; } Modified: cfe/trunk/unittests/Format/FormatTestComments.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Format/FormatTestComments.cpp?rev=311566&r1=311565&r2=311566&view=diff ============================================================================== --- cfe/trunk/unittests/Format/FormatTestComments.cpp (original) +++ cfe/trunk/unittests/Format/FormatTestComments.cpp Wed Aug 23 08:58:10 2017 @@ -2803,23 +2803,6 @@ TEST_F(FormatTestComments, NonTrailingBl " A = B;", getLLVMStyleWithColumns(40))); } - -TEST_F(FormatTestComments, NoCrush_Bug34236) { - // This is a test case from a crasher reported in: - // https://bugs.llvm.org/show_bug.cgi?id=34236 - EXPECT_EQ( - R"( -/* */ /* - * a - * b c - * d*/)", - format( - R"( -/* */ /* - * a b - * c d*/)", - getLLVMStyleWithColumns(80))); -} } // end namespace } // end namespace format } // end namespace clang _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits