diff --git a/clang/lib/Format/BreakableToken.cpp b/clang/lib/Format/BreakableToken.cpp --- a/clang/lib/Format/BreakableToken.cpp +++ b/clang/lib/Format/BreakableToken.cpp @@ -82,9 +82,9 @@ NumChars < MaxSplit && MaxSplitBytes < Text.size();) { unsigned BytesInChar = encoding::getCodePointNumBytes(Text[MaxSplitBytes], Encoding); - NumChars += - encoding::columnWidthWithTabs(Text.substr(MaxSplitBytes, BytesInChar), - ContentStartColumn, TabWidth, Encoding); + NumChars += encoding::columnWidthWithTabs( + Text.substr(MaxSplitBytes, BytesInChar), ContentStartColumn + NumChars, + TabWidth, Encoding); MaxSplitBytes += BytesInChar; } diff --git a/clang/unittests/Format/FormatTestComments.cpp b/clang/unittests/Format/FormatTestComments.cpp --- a/clang/unittests/Format/FormatTestComments.cpp +++ b/clang/unittests/Format/FormatTestComments.cpp @@ -652,6 +652,11 @@ "//: one line", format("//: A comment that doesn't fit on one line", getLLVMStyleWithColumns(20))); + + verifyFormat( + "//\t\t\t\tofMap(message.velocity, 0, 127, 0, ofGetWidth()\n" + "//* 0.2)", + "//\t\t\t\tofMap(message.velocity, 0, 127, 0, ofGetWidth() * 0.2)"); } TEST_F(FormatTestComments, PreservesHangingIndentInCxxComments) {