<div dir="ltr">Yeah, I just saw that when fixing polly format. I'll take a look.</div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Dec 19, 2016 at 9:05 AM, Tobias Grosser <span dir="ltr"><<a href="mailto:tobias@grosser.es" target="_blank">tobias@grosser.es</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Daniel,<br>
<br>
this commit introduce an unnecessary string split, which does not seem<br>
to be an intended result of the formatting style change this commit<br>
introduced:<br>
<br>
BEFORE:<br>
<br>
#define SCOP_STAT(NAME, DESC)<br>
<br>
llvm::Statistic RejectStatistics[] = {<br>
    SCOP_STAT(CFG, ""),<br>
    SCOP_STAT(InvalidTerminator, "Unsupported terminator instruction"),<br>
    SCOP_STAT(IrreducibleRegion, "Irreducible loops"),<br>
    SCOP_STAT(UndefCond, "Undefined branch condition"),<br>
    SCOP_STAT(<wbr>NonSimpleMemoryAccess,<br>
              "Compilated access semantics (volatile or atomic)"),<br>
};<br>
<br>
AFTER:<br>
<br>
#define SCOP_STAT(NAME, DESC)<br>
<br>
llvm::Statistic RejectStatistics[] = {<br>
    SCOP_STAT(CFG, ""),<br>
    SCOP_STAT(InvalidTerminator, "Unsupported terminator instruction"),<br>
    SCOP_STAT(IrreducibleRegion, "Irreducible loops"),<br>
    SCOP_STAT(UndefCond, "Undefined branch condition"),<br>
    SCOP_STAT(<wbr>NonSimpleMemoryAccess, "Compilated access semantics<br>
    (volatile or "<br>
                                     "atomic)"<br>
<br>
As this worked before, this seems to be a regression.<br>
<br>
Best,<br>
Tobias<br>
<div class="HOEnZb"><div class="h5"><br>
On Mon, Dec 19, 2016, at 08:26 AM, Daniel Jasper via cfe-commits wrote:<br>
> Author: djasper<br>
> Date: Mon Dec 19 01:26:11 2016<br>
> New Revision: 290084<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=290084&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project?rev=290084&view=rev</a><br>
> Log:<br>
> clang-format: Allow "single column" list layout even if that violates the<br>
> column limit.<br>
><br>
> Single-column layout basically means that we format the list with one<br>
> element per line. Not doing that when there is a column limit violation<br>
> doesn't change the fact that there is an item that doesn't fit within<br>
> the column limit.<br>
><br>
> Before (with a column limit of 30):<br>
>   std::vector<int> a = {<br>
>       aaaaaaaa, aaaaaaaa,<br>
>       aaaaaaaa, aaaaaaaa,<br>
>       aaaaaaaaaa, aaaaaaaa,<br>
>       aaaaaaaaaaaaaaaaaaaaaaaaaaa};<br>
><br>
> After:<br>
>   std::vector<int> a = {<br>
>       aaaaaaaa,<br>
>       aaaaaaaa,<br>
>       aaaaaaaa,<br>
>       aaaaaaaa,<br>
>       aaaaaaaaaa,<br>
>       aaaaaaaa,<br>
>       aaaaaaaaaaaaaaaaaaaaaaaaaaa};<br>
><br>
> (and previously we would have formatted like "After" it wasn't for the<br>
> one<br>
> item that is too long)<br>
><br>
> Modified:<br>
>     cfe/trunk/lib/Format/<wbr>FormatToken.cpp<br>
>     cfe/trunk/unittests/Format/<wbr>FormatTest.cpp<br>
><br>
> Modified: cfe/trunk/lib/Format/<wbr>FormatToken.cpp<br>
> URL:<br>
> <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/FormatToken.cpp?rev=290084&r1=290083&r2=290084&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/cfe/trunk/lib/Format/<wbr>FormatToken.cpp?rev=290084&r1=<wbr>290083&r2=290084&view=diff</a><br>
> ==============================<wbr>==============================<wbr>==================<br>
> --- cfe/trunk/lib/Format/<wbr>FormatToken.cpp (original)<br>
> +++ cfe/trunk/lib/Format/<wbr>FormatToken.cpp Mon Dec 19 01:26:11 2016<br>
> @@ -273,7 +273,7 @@ void CommaSeparatedList::<wbr>precomputeForma<br>
>        continue;<br>
><br>
>      // Ignore layouts that are bound to violate the column limit.<br>
> -    if (Format.TotalWidth > Style.ColumnLimit)<br>
> +    if (Format.TotalWidth > Style.ColumnLimit && Columns > 1)<br>
>        continue;<br>
><br>
>      Formats.push_back(Format);<br>
> @@ -287,7 +287,7 @@ CommaSeparatedList::<wbr>getColumnFormat(unsi<br>
>             I = Formats.rbegin(),<br>
>             E = Formats.rend();<br>
>         I != E; ++I) {<br>
> -    if (I->TotalWidth <= RemainingCharacters) {<br>
> +    if (I->TotalWidth <= RemainingCharacters || I->Columns == 1) {<br>
>        if (BestFormat && I->LineCount > BestFormat->LineCount)<br>
>          break;<br>
>        BestFormat = &*I;<br>
><br>
> Modified: cfe/trunk/unittests/Format/<wbr>FormatTest.cpp<br>
> URL:<br>
> <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Format/FormatTest.cpp?rev=290084&r1=290083&r2=290084&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/cfe/trunk/unittests/<wbr>Format/FormatTest.cpp?rev=<wbr>290084&r1=290083&r2=290084&<wbr>view=diff</a><br>
> ==============================<wbr>==============================<wbr>==================<br>
> --- cfe/trunk/unittests/Format/<wbr>FormatTest.cpp (original)<br>
> +++ cfe/trunk/unittests/Format/<wbr>FormatTest.cpp Mon Dec 19 01:26:11 2016<br>
> @@ -6779,6 +6779,18 @@ TEST_F(FormatTest, FormatsBracedListsInC<br>
>        "                          1, 22, 333, 4444, 55555, 666666,<br>
>        7777777,\n"<br>
>        "                          1, 22, 333, 4444, 55555, 666666,<br>
>        7777777,\n"<br>
>        "                          1, 22, 333, 4444, 55555, 666666,<br>
>        7777777});");<br>
> +<br>
> +  // Allow "single-column" layout even if that violates the column<br>
> limit. There<br>
> +  // isn't going to be a better way.<br>
> +  verifyFormat("std::vector<int> a = {\n"<br>
> +               "    aaaaaaaa,\n"<br>
> +               "    aaaaaaaa,\n"<br>
> +               "    aaaaaaaa,\n"<br>
> +               "    aaaaaaaa,\n"<br>
> +               "    aaaaaaaaaa,\n"<br>
> +               "    aaaaaaaa,\n"<br>
> +               "    aaaaaaaaaaaaaaaaaaaaaaaaaaa};"<wbr>,<br>
> +               getLLVMStyleWithColumns(30));<br>
>  }<br>
><br>
>  TEST_F(FormatTest, PullTrivialFunctionDefinitions<wbr>IntoSingleLine) {<br>
><br>
><br>
> ______________________________<wbr>_________________<br>
> cfe-commits mailing list<br>
> <a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a><br>
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-commits</a><br>
</div></div></blockquote></div><br></div>