[llvm-dev] Codifying our Brace rules- (original) (raw)

Mehdi AMINI via llvm-dev llvm-dev at lists.llvm.org
Mon Jun 15 16:04:59 PDT 2020


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.

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.

On Mon, Jun 15, 2020 at 12: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. Thanks, Erich


LLVM Developers mailing list llvm-dev at lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200615/1217beda/attachment.html>



More information about the llvm-dev mailing list