<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jun 15, 2020 at 4:08 PM David Blaikie via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Mon, Jun 15, 2020 at 4:05 PM Mehdi AMINI via llvm-dev<br>
<<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br>
><br>
> As another data point, the MLIR part of the codebase is pretty consistent on this: never use braces for trivial (single statement) if/else/for, but always put it on every branch if needed on any side of the if/else.<br>
<br>
Any opinion/stance policy/practice on the "one line, or one statement<br>
(& possibly comments, etc)" issue?<br></blockquote><div><br></div><div>Generally, any time there is a comment within the body I don't really see it as "trivial" anymore.</div><div><br></div><div>Prefer:</div><div>  if (...) {</div><div>    // Some comment.</div><div>    single statement;</div><div>  }</div><div>  // Some comment.</div><div>  If (...)</div><div>    single statement;</div><div><br></div><div>Over:</div><div>  if (...)</div><div>    // Some comment</div><div>    single statement;</div><div><br></div><div>-- River</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
> We also have clang-format pretty heavily enforced (including in the automated pre-merge testing on phabricator) which does not lead to issues where someone would add something into the body of a `for` for example and "forget" to add braces. I don't think I have seen any single instance of such bugs slipping in our code so far.<br>
><br>
><br>
><br>
> On Mon, Jun 15, 2020 at 12:46 PM Keane, Erich via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br>
>><br>
>> Hi all-<br>
>><br>
>><br>
>><br>
>> A few weeks ago I noticed that our “omit braces with single line blocks” rule wasn’t written down!  Additionally, as a group on IRC and in review, noticed that the enforcement of this rule has been extremely inconsistent.  We made a first run at codifying our existing practice here: <a href="https://reviews.llvm.org/D80947" rel="noreferrer" target="_blank">https://reviews.llvm.org/D80947</a>, which was then committed after significant time on llvm-commits.<br>
>><br>
>><br>
>><br>
>> I would like to encourage the list via discussion and further reviews/commits to come to a consensus on what we actually MEAN by this rule.  For example, a recent comment points out that :<br>
>><br>
>><br>
>><br>
>> If (cond)<br>
>><br>
>>   Stmt;<br>
>><br>
>> else if (cond)<br>
>><br>
>>   Stmt;<br>
>><br>
>> else {<br>
>><br>
>>   Stmt;<br>
>><br>
>>   Stmt;<br>
>><br>
>> }<br>
>><br>
>><br>
>><br>
>> Should require braces on all of the conditions!  However, we are extraordinarily inconsistent here.  My wish is for us to become more consistent, so I would like us to use this thread to organize our collective thoughts on figuring out what the rule actually SHOULD be, and organizing a handful of commits to the coding standard to make sure it says what we mean.<br>
>><br>
>><br>
>> Thanks,<br>
>> Erich<br>
>><br>
>> _______________________________________________<br>
>> LLVM Developers mailing list<br>
>> <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
>> <a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
><br>
> _______________________________________________<br>
> LLVM Developers mailing list<br>
> <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
> <a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div></div>