The patch titled Subject: checkpatch: add test for comma use that should be semicolon has been added to the -mm tree. Its filename is checkpatch-add-test-for-comma-use-that-should-be-semicolon.patch This patch should soon appear at https://ozlabs.org/~akpm/mmots/broken-out/checkpatch-add-test-for-comma-use-that-should-be-semicolon.patch and later at https://ozlabs.org/~akpm/mmotm/broken-out/checkpatch-add-test-for-comma-use-that-should-be-semicolon.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Joe Perches <joe@xxxxxxxxxxx> Subject: checkpatch: add test for comma use that should be semicolon There are commas used as statement terminations that should typically have used semicolons instead. Only direct assignments or use of a single function or value on a single line are detected by this test. e.g.: foo = bar(), /* typical use is semicolon not comma */ bar = baz(); Add an imperfect test to detect these comma uses. No false positives were found in testing, but many types of false negatives are possible. e.g.: foo = bar() + 1, /* comma use, but not direct assignment */ bar = baz(); Link: https://lkml.kernel.org/r/3bf27caf462007dfa75647b040ab3191374a59de.camel@xxxxxxxxxxx Signed-off-by: Joe Perches <joe@xxxxxxxxxxx Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- scripts/checkpatch.pl | 11 +++++++++++ 1 file changed, 11 insertions(+) --- a/scripts/checkpatch.pl~checkpatch-add-test-for-comma-use-that-should-be-semicolon +++ a/scripts/checkpatch.pl @@ -4942,6 +4942,17 @@ sub process { } } +# check if a statement with a comma should be two statements like: +# foo = bar(), /* comma should be semicolon */ +# bar = baz(); + if (defined($stat) && + $stat =~ /^\+\s*(?:$Lval\s*$Assignment\s*)?$FuncArg\s*,\s*(?:$Lval\s*$Assignment\s*)?$FuncArg\s*;\s*$/) { + my $cnt = statement_rawlines($stat); + my $herectx = get_stat_here($linenr, $cnt, $here); + WARN("SUSPECT_COMMA_SEMICOLON", + "Possible comma where semicolon could be used\n" . $herectx); + } + # return is not a function if (defined($stat) && $stat =~ /^.\s*return(\s*)\(/s) { my $spacing = $1; _ Patches currently in -mm which might be from joe@xxxxxxxxxxx are checkpatch-test-git_dir-changes.patch checkpatch-move-repeated-word-test.patch checkpatch-add-test-for-comma-use-that-should-be-semicolon.patch