lkml.org 
[lkml]   [2015]   [May]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH RFC V2] checkpatch: flag split arithmetic operations with CHECK
From
Date
On Sun, 2015-05-10 at 13:26 +0200, Nicholas Mc Guire wrote:
> Simple arithmetic operations should be on one line, if they can be fit,
> rather than splitting at the operator. As this is not in the CodingStyle it
> is limited to --strict use of checkpatch.pl and emits a CHECK only.

The "if they can fit" is an important consideration
not addressed by this patch.

> This extension should flag such lines as CHECK only, as this is not
> mandated by the CodingStyle and in some cases they seem justified
> (e.g. kernel/sched/fair.c:760 and a few other examples in that file)

> TODO: Move to "# Check operator spacing" section as Joe Perches
> requested - simply got completely lost in that section...
> Also not clear if it really is the right place to put it -
> spacing issues and split operators are two quite different
> problems.
> Question: There are many (518) "lines over 80 char" warnings but that
> seems to be accepted in checkpatch.pl - should those be
> wrapped ?

perl is not c

Regexs are often quite long so I think trying to
do 80 column wrapping is something that would make
checkpatch even less readable.

> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
[]
> @@ -2577,6 +2577,58 @@ sub process {
> "Logical continuations should be on the previous line\n" . $hereprev);
> }
>
> +# check for + or - at the end of a line but ignore --/++
> + if (!($rawline =~ /^\+.*(\+\+|--).*$/) &&
> + $rawline =~ /^\+.*(\+|-)$/) {
> + my $opline = $line; $opline =~ s/^./ /;
> + my ($curr_values, $types) = annotate_values($opline . "\n", $prev_values);
> + # its type and the end 'B' -> binary * -> fuss
> + if($types =~ m/^.*B$/) {
> + CHK("ARITHMETIC_CONTINUATIONS",
> + "Arithmetic expressions should be on one line\n" . $hereprev);

This message is unclear.

Arithmetic should not be on one line as that conflicts
with line length limits.

This test is similar to the logical operator continuation
test at line 2574.

Maybe the message would be clearer with
"Arithmetic operator should be on the previous line\n"

But more globally, maybe this style and message should
be used for many different operators:

o multiplicative (*, /, %)
o additive (+, -)
o bitwise shift (<<, >>)
o relational (<, >, <=, >=)
o equality (==, !=)
o bitwise (&, ^, |)
o logical (&&, ||)
o assignment (=, *=, /=, %=, +=, -=, <<=, >>=, &=, ^=, |=)

That's a rather bigger change though and would
be better done with more discussion first.




\
 
 \ /
  Last update: 2015-05-10 19:01    [W:0.054 / U:0.488 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site