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 <hof...@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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/