From: Joe Perches <joe@perches.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: LKML <linux-kernel@vger.kernel.org>
Subject: [PATCH] checkpatch: Reduce false positives for "Missing blank line after declarations" test
Date: Mon, 17 Mar 2014 11:45:26 -0700 [thread overview]
Message-ID: <1395081926.2556.27.camel@joe-AO722> (raw)
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);
next reply other threads:[~2014-03-17 18:45 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-17 18:45 Joe Perches [this message]
2014-03-17 20:03 ` Joe Perches
2014-03-19 0:08 ` [PATCH V2] " Joe Perches
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1395081926.2556.27.camel@joe-AO722 \
--to=joe@perches.com \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®