diff options
author | Andy Whitcroft <apw@shadowen.org> | 2008-10-16 09:02:29 +0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-16 22:21:36 +0400 |
commit | 0776e594606e32a045e0a99bb919b2280b945495 (patch) | |
tree | da5cb9f363484fcf343c72b7b48ada5191b97cf0 | |
parent | 5fdd23acf9cd7f658746b119436ed1d787326c46 (diff) | |
download | linux-0776e594606e32a045e0a99bb919b2280b945495.tar.xz |
checkpatch: do is not a possible type
A do without braces '{' may trigger a false possible type 'do' and then
this may be interpreted as an external definition of foo():
do
foo();
while (bar);
Add do to the type exclusions. Fix up tests so we can check for them.
Signed-off-by: Andy Whitcroft <apw@shadowen.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rwxr-xr-x | scripts/checkpatch.pl | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 118fe1f30e76..6b21188d2cf7 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -913,12 +913,22 @@ sub annotate_values { sub possible { my ($possible, $line) = @_; - print "CHECK<$possible> ($line)\n" if ($dbg_possible > 1); - if ($possible !~ /^(?:$Modifier|$Storage|$Type|DEFINE_\S+)$/ && - $possible ne 'goto' && $possible ne 'return' && - $possible ne 'case' && $possible ne 'else' && - $possible ne 'asm' && $possible ne '__asm__' && - $possible !~ /^(typedef|struct|enum)\b/) { + print "CHECK<$possible> ($line)\n" if ($dbg_possible > 2); + if ($possible !~ /(?: + ^(?: + $Modifier| + $Storage| + $Type| + DEFINE_\S+| + goto| + return| + case| + else| + asm|__asm__| + do + )$| + ^(?:typedef|struct|enum)\b + )/x) { # Check for modifiers. $possible =~ s/\s*$Storage\s*//g; $possible =~ s/\s*$Sparse\s*//g; @@ -936,6 +946,8 @@ sub possible { push(@typeList, $possible); } build_types(); + } else { + warn "NOTPOSS: $possible ($line)\n" if ($dbg_possible > 1); } } |