[lkml]   [2018]   [Oct]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: list iterator spacing: clang-format vs checkpatch
Hi Jason,

On Mon, Oct 8, 2018 at 4:01 AM Jason A. Donenfeld <> wrote:
> Hi Joe, Miguel, others,
> The shiny new .clang-format file lists a number of nice iterators in
> the ForEachMacros category, the consequence being that there is a
> space between the iterator name and the opening parenthesis. This
> strikes me as the right thing to do.
> However, complains about it:
> WARNING: space prohibited between function name and open parenthesis '('
> #65: FILE: ratelimiter.c:65:
> + hlist_for_each_entry_safe (entry, temp, &table_v4[i], hash) {
> It would seem that .clang-format is right and is wrong?

Checking quickly, it would seem most of the kernel does not put a
space there (a minority does), e.g.:

git grep 'list_for_each[a-zA-Z0-9_]* (' | wc -l # 67
git grep 'list_for_each[a-zA-Z0-9_]*(' | wc -l # 13892

So in that sense, is right (even if it is not a function call).

Now, I put the list there because otherwise clang-format would put
braces in the next line, which looks even worse.

I am not sure if there is a way to make clang-format do what we need:
* SpaceBeforeParens does not have an option to distinguish normal
loops from macro ones.
* SpaceBeforeRangeBasedForLoopColon does not do it (which makes
sense, but it was a nice try :-)

We would probably need to implement SpaceBeforeForEachMacros (or a new
option for SpaceBeforeParens). I haven't had the time to look into
adding the missing support for the few things that the kernel style
requires, sadly, but it is in my TODO list.


 \ /
  Last update: 2018-10-08 09:32    [W:0.064 / U:0.028 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site