Skip to content

Commit

Permalink
checkpatch: types: some types may also be identifiers
Browse files Browse the repository at this point in the history
Some types such as typedefs may overlap real identifiers.  Be more
targetted about when a type can really exist.  Where it cannot let it be
an identifier.  This prevents false reporting of the minus '-' in unary
context in the following:

	foo[bar->bool - 1];

Signed-off-by: Andy Whitcroft <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
awhitcroft authored and torvalds committed Jul 24, 2008
1 parent fee61c4 commit c8cb2ca
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions scripts/checkpatch.pl
Original file line number Diff line number Diff line change
Expand Up @@ -171,22 +171,22 @@
sub build_types {
my $mods = "(?: \n" . join("|\n ", @modifierList) . "\n)";
my $all = "(?: \n" . join("|\n ", @typeList) . "\n)";
$Modifier = qr{(?:$Attribute|$Sparse|$mods)};
$NonptrType = qr{
(?:const\s+)?
(?:$mods\s+)?
(?:
(?:typeof|__typeof__)\s*\(\s*\**\s*$Ident\s*\)|
(?:${all}\b)
)
(?:\s+$Sparse|\s+const)*
(?:\s+$Modifier|\s+const)*
}x;
$Type = qr{
$NonptrType
(?:\s*\*+\s*const|\s*\*+|(?:\s*\[\s*\])+)?
(?:\s+$Inline|\s+$Sparse|\s+$Attribute|\s+$mods)*
(?:\s+$Inline|\s+$Modifier)*
}x;
$Declare = qr{(?:$Storage\s+)?$Type};
$Modifier = qr{(?:$Attribute|$Sparse|$mods)};
}
build_types();

Expand Down Expand Up @@ -715,7 +715,7 @@ sub annotate_values {
$av_preprocessor = 0;
}

} elsif ($cur =~ /^($Type)/) {
} elsif ($cur =~ /^($Type)\s*(?:$Ident|,|\))/) {
print "DECLARE($1)\n" if ($dbg_values > 1);
$type = 'T';

Expand Down Expand Up @@ -800,8 +800,9 @@ sub annotate_values {
print "PAREN('$1')\n" if ($dbg_values > 1);
}

} elsif ($cur =~ /^($Ident)\(/o) {
} elsif ($cur =~ /^($Ident)\s*\(/o) {
print "FUNC($1)\n" if ($dbg_values > 1);
$type = 'V';
$av_pending = 'V';

} elsif ($cur =~ /^($Ident|$Constant)/o) {
Expand Down

0 comments on commit c8cb2ca

Please sign in to comment.