Messages in this thread Patch in this message | | | From | Nicholas Mc Guire <> | Subject | [PATCH RFC] checkpatch: flag split arithmetic operations with CHECK | Date | Tue, 5 May 2015 10:53:36 +0200 |
| |
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.
Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> ---
Patches by people like me splitting arithmetic operations, e.g.: hdw->encoder_run_timer.expires = jiffies + msecs_to_jiffies(TIME_MSEC_ENCODER_OK); were flagged by Joe Perches but checkpatch.pl was not fussing, not even with --strict. This extension should flag such lines as CHECK only, as this is not mandated by the CodingStyle and in some cases they are justified (e.g. kernel/sched/fair.c:760 and a few other examples in that file)
Limitation: this is for + and - only still have to figure out some false positives for the * and /, % ($Arithmetic) case.
patch is against 4.0-rc2 (localversion-next is -next-20150505)
scripts/checkpatch.pl | 13 +++++++++++++ 1 file changed, 13 insertions(+)
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 89b1df4..051ea99 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -2577,6 +2577,19 @@ sub process { "Logical continuations should be on the previous line\n" . $hereprev); } +# check for + or - at the end of a line + if ($rawline =~ /^\+[^*]*(\+|-)$/) { + CHK("ARITHMETIC_CONTINUATIONS", + "Arithmetic expressions should be on one line\n" . $hereprev); + } + +# check for + or - at beginning of a line but exclude ++var/--var + if (!($rawline =~ /^\+\s*(\+\+|--).*$/) && + $rawline =~ /^\+\s*(\+|-).*$/) { + CHK("ARITHMETIC_CONTINUATIONS", + "Arithmetic expressions should be on one line\n" . $hereprev); + } + # check multi-line statement indentation matches previous line if ($^V && $^V ge 5.10.0 && $prevline =~ /^\+([ \t]*)((?:$c90_Keywords(?:\s+if)\s*)|(?:$Declare\s*)?(?:$Ident|\(\s*\*\s*$Ident\s*\))\s*|$Ident\s*=\s*$Ident\s*)\(.*(\&\&|\|\||,)\s*$/) { -- 1.7.10.4
| |