[cfe-commits] r172049 - in /cfe/trunk: lib/Format/Format.cpp unittests/Format/FormatTest.cpp

Nico Weber thakis at chromium.org
Thu Jan 10 14:02:53 PST 2013


On Thu, Jan 10, 2013 at 1:57 PM, Daniel Jasper <djasper at google.com> wrote:
> You already added them in r172023. I think they are a good addition.

D'oh, that wasn't intentional. Sorry for the noise then.

>
>
> On Thu, Jan 10, 2013 at 10:51 PM, Nico Weber <thakis at chromium.org> wrote:
>>
>> Thanks!
>>
>> Any thoughts about the assert() calls I suggested on the bug?
>>
>> On Thu, Jan 10, 2013 at 1:26 AM, Daniel Jasper <djasper at google.com> wrote:
>> > Author: djasper
>> > Date: Thu Jan 10 03:26:47 2013
>> > New Revision: 172049
>> >
>> > URL: http://llvm.org/viewvc/llvm-project?rev=172049&view=rev
>> > Log:
>> > Do more error checking for '{}'.
>> >
>> > This fixes llvm.org/PR14883, where clang-format would run into an
>> > assertion on:
>> >
>> > void f() { return } 42
>> >
>> > Modified:
>> >     cfe/trunk/lib/Format/Format.cpp
>> >     cfe/trunk/unittests/Format/FormatTest.cpp
>> >
>> > Modified: cfe/trunk/lib/Format/Format.cpp
>> > URL:
>> > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/Format.cpp?rev=172049&r1=172048&r2=172049&view=diff
>> >
>> > ==============================================================================
>> > --- cfe/trunk/lib/Format/Format.cpp (original)
>> > +++ cfe/trunk/lib/Format/Format.cpp Thu Jan 10 03:26:47 2013
>> > @@ -651,6 +651,21 @@
>> >        return false;
>> >      }
>> >
>> > +    bool parseBrace() {
>> > +      while (CurrentToken != NULL) {
>> > +        if (CurrentToken->is(tok::r_brace)) {
>> > +          next();
>> > +          return true;
>> > +        }
>> > +        if (CurrentToken->is(tok::r_paren) ||
>> > CurrentToken->is(tok::r_square))
>> > +          return false;
>> > +        if (!consumeToken())
>> > +          return false;
>> > +      }
>> > +      // Lines can currently end with '{'.
>> > +      return true;
>> > +    }
>> > +
>> >      bool parseConditional() {
>> >        while (CurrentToken != NULL) {
>> >          if (CurrentToken->is(tok::colon)) {
>> > @@ -693,6 +708,10 @@
>> >          if (!parseSquare())
>> >            return false;
>> >          break;
>> > +      case tok::l_brace:
>> > +        if (!parseBrace())
>> > +          return false;
>> > +        break;
>> >        case tok::less:
>> >          if (parseAngle())
>> >            Tok->Type = TT_TemplateOpener;
>> > @@ -705,6 +724,11 @@
>> >        case tok::r_paren:
>> >        case tok::r_square:
>> >          return false;
>> > +      case tok::r_brace:
>> > +        // Lines can start with '}'.
>> > +        if (Tok->Parent != NULL)
>> > +          return false;
>> > +        break;
>> >        case tok::greater:
>> >          Tok->Type = TT_BinaryOperator;
>> >          break;
>> >
>> > Modified: cfe/trunk/unittests/Format/FormatTest.cpp
>> > URL:
>> > http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Format/FormatTest.cpp?rev=172049&r1=172048&r2=172049&view=diff
>> >
>> > ==============================================================================
>> > --- cfe/trunk/unittests/Format/FormatTest.cpp (original)
>> > +++ cfe/trunk/unittests/Format/FormatTest.cpp Thu Jan 10 03:26:47 2013
>> > @@ -1036,6 +1036,10 @@
>> >  // Error recovery tests.
>> >
>> > //===----------------------------------------------------------------------===//
>> >
>> > +TEST_F(FormatTest, IncorrectCodeTrailingStuff) {
>> > +  verifyFormat("void f() {  return } 42");
>> > +}
>> > +
>> >  TEST_F(FormatTest, IndentationWithinColumnLimitNotPossible) {
>> >    verifyFormat("int aaaaaaaa =\n"
>> >                 "    // Overly long comment\n"
>> >
>> >
>> > _______________________________________________
>> > cfe-commits mailing list
>> > cfe-commits at cs.uiuc.edu
>> > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
>



More information about the cfe-commits mailing list