r311566 - Revert "[clang-format] Emit absolute splits before lines for comments"
Krasimir Georgiev via cfe-commits
cfe-commits at lists.llvm.org
Wed Aug 23 08:58:10 PDT 2017
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
More information about the cfe-commits
mailing list