This patch is a follow-up of https://reviews.llvm.org/rL304687, which fixed an
overflow in the comment alignment code in clang-format. The token length of
trailing comments of preprocessor directives is calculated incorrectly by
including the text between consecutive directives. That causes them to not being
aligned.
For example, in this code with column limit 20
#if A #else // A int iiii; #endif // B
the length of the token // A was wrongly calculated as 14 = 5 (the size of // A\n) plus 9 (the size of int iiii;) and so // A wouldn't be aligned with // B and this was produced:
#if A #else // A int iiii; #endif // B
This patch fixes this case.
I'd pull SourceMgr.getCharacterData(PreviousOriginalWhitespaceEnd) out to a variable.