[PATCH] D154550: [clang-format] Allow empty loops on a single line.
Gedare Bloom via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Jul 24 12:03:22 PDT 2023
gedare planned changes to this revision.
gedare added a comment.
In D154550#4526386 <https://reviews.llvm.org/D154550#4526386>, @owenpan wrote:
> Like `while (a);`, `while (a) {}` is also an empty loop, so `NonEmpty` is misleading if it excludes the former but not the latter. IMO we should just fix the bug without extending the option because any loop with a single-statement body is a short loop.
Agreed, except that many style guides (notably, K&R, LLVM, and Google) treat these two cases differently. The loop with only a semi-colon is a special case, and is what I'm looking to support. K&R defines the semi-colon terminated for/while loop as a body composed of a //null statement//. I believe that `{ }` is instead an empty body, as it does not parse as a statement, despite generating identical code. Maybe`NonNullStatement` is precise and better than `NonEmpty`? I will prepare that change, and fix the spacing before the `;`.
Whether someone thinks collapsing bracketed bodies that are short should be supported is a separate problem, and even if so, it would require a similar style option change as I suggest to allow for backward compatibility. I'm not personally interested in that case, as the code base I work with uses the isolated semicolon.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D154550/new/
https://reviews.llvm.org/D154550
More information about the cfe-commits
mailing list