r226454 - clang-format: Fix crasher on weird comments.

Daniel Jasper djasper at google.com
Mon Jan 19 10:17:16 PST 2015


kcc did :-).

On Mon, Jan 19, 2015 at 7:16 PM, Nico Weber <thakis at chromium.org> wrote:

> Nice! Did you run a fuzzer to find all these?
>
> On Mon, Jan 19, 2015 at 3:49 AM, Daniel Jasper <djasper at google.com> wrote:
>
>> Author: djasper
>> Date: Mon Jan 19 05:49:32 2015
>> New Revision: 226454
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=226454&view=rev
>> Log:
>> clang-format: Fix crasher on weird comments.
>>
>> Crashing input:
>>   /\
>>   / comment
>>
>> Modified:
>>     cfe/trunk/lib/Format/TokenAnnotator.cpp
>>     cfe/trunk/unittests/Format/FormatTest.cpp
>>
>> Modified: cfe/trunk/lib/Format/TokenAnnotator.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/TokenAnnotator.cpp?rev=226454&r1=226453&r2=226454&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/lib/Format/TokenAnnotator.cpp (original)
>> +++ cfe/trunk/lib/Format/TokenAnnotator.cpp Mon Jan 19 05:49:32 2015
>> @@ -838,10 +838,8 @@ private:
>>                 (!Current.Previous ||
>> Current.Previous->isNot(tok::l_square))) {
>>        Current.Type = TT_BinaryOperator;
>>      } else if (Current.is(tok::comment)) {
>> -      if (Current.TokenText.startswith("//"))
>> -        Current.Type = TT_LineComment;
>> -      else
>> -        Current.Type = TT_BlockComment;
>> +      Current.Type =
>> +          Current.TokenText.startswith("/*") ? TT_BlockComment :
>> TT_LineComment;
>>      } else if (Current.is(tok::r_paren)) {
>>        if (rParenEndsCast(Current))
>>          Current.Type = TT_CastRParen;
>>
>> Modified: cfe/trunk/unittests/Format/FormatTest.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Format/FormatTest.cpp?rev=226454&r1=226453&r2=226454&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/unittests/Format/FormatTest.cpp (original)
>> +++ cfe/trunk/unittests/Format/FormatTest.cpp Mon Jan 19 05:49:32 2015
>> @@ -1035,6 +1035,9 @@ TEST_F(FormatTest, UnderstandsSingleLine
>>                     "     // spanning two lines\n"
>>                     " x + 3) {\n"
>>                     "}"));
>> +
>> +  verifyNoCrash("/\\\n/");
>> +  verifyNoCrash("/\\\n* */");
>>  }
>>
>>  TEST_F(FormatTest, KeepsParameterWithTrailingCommentsOnTheirOwnLine) {
>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150119/bcafb873/attachment.html>


More information about the cfe-commits mailing list