diff options
| author | Krasimir Georgiev <krasimir@google.com> | 2018-03-16 14:01:25 +0000 |
|---|---|---|
| committer | Krasimir Georgiev <krasimir@google.com> | 2018-03-16 14:01:25 +0000 |
| commit | ce00978b101db664451f127fbd219f2c777f99db (patch) | |
| tree | b7e8d3eb7f97dce2b9ba2544a27c19f8f29b5cbe /clang/lib/Format | |
| parent | 23578e7d3cb0bff9d4b29d3bab1c75a03b101cfd (diff) | |
| download | bcm5719-llvm-ce00978b101db664451f127fbd219f2c777f99db.tar.gz bcm5719-llvm-ce00978b101db664451f127fbd219f2c777f99db.zip | |
[clang-format] Fix raw string prefix penalty
Summary: We weren't penalizing cases where the raw string prefix goes over the column limit.
Subscribers: klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D44563
llvm-svn: 327708
Diffstat (limited to 'clang/lib/Format')
| -rw-r--r-- | clang/lib/Format/ContinuationIndenter.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/clang/lib/Format/ContinuationIndenter.cpp b/clang/lib/Format/ContinuationIndenter.cpp index 6027f5fd612..9d19262397a 100644 --- a/clang/lib/Format/ContinuationIndenter.cpp +++ b/clang/lib/Format/ContinuationIndenter.cpp @@ -1454,7 +1454,13 @@ unsigned ContinuationIndenter::reformatRawStringLiteral( unsigned RawLastLineEndColumn = getLastLineEndColumn( *NewCode, FirstStartColumn, Style.TabWidth, Encoding); State.Column = RawLastLineEndColumn + NewSuffixSize; - return Fixes.second; + // Since we're updating the column to after the raw string literal here, we + // have to manually add the penalty for the prefix R"delim( over the column + // limit. + unsigned PrefixExcessCharacters = + StartColumn + NewPrefixSize > Style.ColumnLimit ? + StartColumn + NewPrefixSize - Style.ColumnLimit : 0; + return Fixes.second + PrefixExcessCharacters * Style.PenaltyExcessCharacter; } unsigned ContinuationIndenter::addMultilineToken(const FormatToken &Current, |

