[llvm-dev] Codifying our Brace rules-
Aaron Ballman via llvm-dev
llvm-dev at lists.llvm.org
Tue Jun 16 04:02:37 PDT 2020
On Mon, Jun 15, 2020 at 3:46 PM Keane, Erich via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
>
> Hi all-
>
>
>
> 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: https://reviews.llvm.org/D80947, which was then committed after significant time on llvm-commits.
>
>
>
> 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 :
>
>
>
> If (cond)
>
> Stmt;
>
> else if (cond)
>
> Stmt;
>
> else {
>
> Stmt;
>
> Stmt;
>
> }
>
>
>
> 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.
I'm in the always-use-braces camp, so my preference is that if one of
the branches in the chain requires braces, we should use them for all
branches. I consider comments to count towards whether braces are
required, so:
if (foo)
// This is bad
bar();
if (foo) {
// This is good
bar();
}
if (foo) {
bar(); // But I prefer this
}
~Aaron
More information about the llvm-dev
mailing list