Index: clang/lib/Format/BreakableToken.cpp =================================================================== --- clang/lib/Format/BreakableToken.cpp +++ 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; } Index: clang/unittests/Format/FormatTestComments.cpp =================================================================== --- clang/unittests/Format/FormatTestComments.cpp +++ clang/unittests/Format/FormatTestComments.cpp @@ -729,6 +729,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) {