[PATCH] D154550: [clang-format] Allow empty loops on a single line.

Gedare Bloom via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sat Aug 5 13:10:26 PDT 2023


gedare added a comment.

In D154550#4562061 <https://reviews.llvm.org/D154550#4562061>, @owenpan wrote:

> In D154550#4529346 <https://reviews.llvm.org/D154550#4529346>, @gedare wrote:
>
>> 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.
>
> LLVM doesn't merge short loops. Google uses `{}` instead of `;` whereas AFAIK K&R does the opposite. I don't know of any major style that requires breaking before the null statement and merging the empty block.

https://google.github.io/styleguide/cppguide.html#Formatting_Looping_Branching
<quote>
Empty loop bodies should use either an empty pair of braces or continue with no braces, rather than a single semicolon.

  while (condition) {}  // Good - `{}` indicates no logic.
  while (condition) {
    // Comments are okay, too
  }
  while (condition) continue;  // Good - `continue` indicates no logic.
  while (condition);  // Bad - looks like part of `do-while` loop.


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