Index: lib/Format/Format.cpp =================================================================== --- lib/Format/Format.cpp +++ lib/Format/Format.cpp @@ -940,11 +940,13 @@ FormatTok = new (Allocator.Allocate()) FormatToken; FormatTok->Tok = Tok; SourceLocation TokLocation = - FormatTok->Tok.getLocation().getLocWithOffset(1); + FormatTok->Tok.getLocation().getLocWithOffset(Tok.getLength() - 1); + FormatTok->Tok.setLocation(TokLocation); FormatTok->WhitespaceRange = SourceRange(TokLocation, TokLocation); FormatTok->TokenText = TokenText; FormatTok->ColumnWidth = 1; - FormatTok->OriginalColumn = OriginalColumn; + FormatTok->OriginalColumn = OriginalColumn + 1; + return FormatTok; } Index: unittests/Format/FormatTest.cpp =================================================================== --- unittests/Format/FormatTest.cpp +++ unittests/Format/FormatTest.cpp @@ -9753,6 +9753,7 @@ TEST_F(FormatTest, MergeLessLessAtEnd) { verifyFormat("<<"); + EXPECT_EQ("< < <", format("\\\n<<<")); verifyFormat("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" "aaallvm::outs() <<"); verifyFormat("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"