Messages in this thread Patch in this message | | | Subject | [PATCH] checkpatch: Reduce false positives for "Missing blank line after declarations" test | From | Joe Perches <> | Date | Mon, 17 Mar 2014 11:45:26 -0700 |
| |
Avoid some false positives for this test by adding a few common macro types that declare variables.
DECLARE_<FOO> DEFINE_<BAR> LIST_HEAD
Also allow extended bitfield declarations like
int a:5, b:2, c:1;
and avoid emitting this warning on declarations like
int foo[bar] [baz];
Signed-off-by: Joe Perches <joe@perches.com> --- scripts/checkpatch.pl | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-)
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index d44e440..98e0be7 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -388,6 +388,11 @@ our @mode_permission_funcs = ( ["(?:CLASS|DEVICE|SENSOR)_ATTR", 2], ); +our $declaration_macros = qr{(?x: + (?:$Storage\s+)?(?:DECLARE|DEFINE)_[A-Z]+\s*\(| + (?:$Storage\s+)?LIST_HEAD\s*\( +)}; + our $allowed_asm_includes = qr{(?x: irq| memory @@ -2251,14 +2256,18 @@ sub process { } # check for missing blank lines after declarations - if ($prevline =~ /^\+\s+$Declare\s+$Ident/ && + if ($sline =~ /^\+\s+\S/ && #Not at char 1 + ($prevline =~ /^\+\s+$Declare\s+$Ident/ || + $prevline =~ /^\+\s+$Ident(?:\s+|\s*\*\s*)$Ident/ || + $prevline =~ /^\+\s+$declaration_macros/) && !($prevline =~ /(?:$Compare|$Assignment|$Operators)\s*$/ || $prevline =~ /(?:\{\s*|\\)$/) && #extended lines - $sline =~ /^\+\s+/ && #Not at char 1 !($sline =~ /^\+\s+$Declare/ || - $sline =~ /^\+\s+$Ident\s+$Ident/ || #eg: typedef foo + $sline =~ /^\+\s+$Ident(?:\s+|\s*\*\s*)$Ident/ || #eg: typedef foo + $sline =~ /^\+\s+$declaration_macros/ || $sline =~ /^\+\s+(?:union|struct|enum|typedef)\b/ || - $sline =~ /^\+\s+(?:$|[\{\}\.\#\"\?\:\(])/ || + $sline =~ /^\+\s+(?:$|[\{\}\.\#\"\?\:\(\[])/ || + $sline =~ /^\+\s+$Ident\s*:\s*\d+\s*[,;]/ || #bitfield $sline =~ /^\+\s+\(?\s*(?:$Compare|$Assignment|$Operators)/)) { WARN("SPACING", "Missing a blank line after declarations\n" . $hereprev);
| |