forked from OSchip/llvm-project
clang-format: Fix incorrect handling of leading whitespace.
Added an assertion that triggered in an existing test case (without observable differences) and fixed the code. llvm-svn: 227677
This commit is contained in:
parent
9fee8ab4f9
commit
30526e79e8
|
@ -245,12 +245,18 @@ unsigned ContinuationIndenter::addTokenToState(LineState &State, bool Newline,
|
|||
(Current.Previous->Tok.getIdentifierInfo() == nullptr ||
|
||||
Current.Previous->Tok.getIdentifierInfo()->getPPKeywordID() ==
|
||||
tok::pp_not_keyword))) {
|
||||
// FIXME: Is this correct?
|
||||
int WhitespaceLength = SourceMgr.getSpellingColumnNumber(
|
||||
State.NextToken->WhitespaceRange.getEnd()) -
|
||||
SourceMgr.getSpellingColumnNumber(
|
||||
State.NextToken->WhitespaceRange.getBegin());
|
||||
State.Column += WhitespaceLength;
|
||||
unsigned EndColumn =
|
||||
SourceMgr.getSpellingColumnNumber(Current.WhitespaceRange.getEnd());
|
||||
if (Current.LastNewlineOffset != 0) {
|
||||
// If there is a newline within this token, the final column will solely
|
||||
// determined by the current end column.
|
||||
State.Column = EndColumn;
|
||||
} else {
|
||||
unsigned StartColumn =
|
||||
SourceMgr.getSpellingColumnNumber(Current.WhitespaceRange.getBegin());
|
||||
assert(EndColumn >= StartColumn);
|
||||
State.Column += EndColumn - StartColumn;
|
||||
}
|
||||
moveStateToNextToken(State, DryRun, /*Newline=*/false);
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue