Re: [PATCH 1/1] checkpatch: don't fake typedefs with #define

From: Phil Carmody
Date: Tue May 22 2012 - 04:04:30 EST


On 21/05/12 09:41 -0700, ext Joe Perches wrote:
> On Mon, 2012-05-21 at 15:05 +0300, Phil Carmody wrote:
> > +# check for deliberate avoidance of the above anti-typedef rule
> > + if ($line =~ /#\s*define\s+$Ident\s+(enum|union|struct)\s+$Ident\b/) {

> I believe this would not catch,
>
> #define typedeflike_define_t \
> struct foo
>
> If it's deliberate, you probably want to.
>
> So maybe you want to move this and use
> the $stat tests like the extern or memset
> tests do (look around line 3200).

Thanks for the pointer. This flags everything I'm interested in:

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index faea0ec..408aee0 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -3319,6 +3319,13 @@ sub process {
"externs should be avoided in .c files\n" . $herecurr);
}

+# check for deliberate avoidance of the anti-typedef rule
+ if (defined $stat &&
+ $stat =~ /#\s*define\s+$Ident\s+(enum|union|struct)\s+$Ident\b/) {
+ WARN("NEW_TYPEDEFS",
+ "do not fake typedefs using #define\n" . $herecurr);
+ }
+
# checks for new __setup's
if ($rawline =~ /\b__setup\("([^"]*)"/) {
my $name = $1;

--
Phil Carmody
Tel: +372 5697 1161
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/