Commit 70dc8a48357ce630d8a76887a9a36f0d34c8caf2

Authored by Joe Perches
Committed by Linus Torvalds
1 parent 7e51f19792

checkpatch: warn when using extern with function prototypes in .h files

Using the extern keyword on function prototypes is superfluous visual
noise so suggest removing it.

Using extern can cause unnecessary line wrapping at 80 columns and
unnecessarily long multi-line function prototypes.

Signed-off-by: Joe Perches <joe@perches.com>
Suggested-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Showing 1 changed file with 10 additions and 0 deletions Side-by-side Diff

scripts/checkpatch.pl
... ... @@ -3878,6 +3878,16 @@
3878 3878 }
3879 3879 }
3880 3880  
  3881 +# check for new externs in .h files.
  3882 + if ($realfile =~ /\.h$/ &&
  3883 + $line =~ /^\+\s*(extern\s+)$Type\s*$Ident\s*\(/s) {
  3884 + if (WARN("AVOID_EXTERNS",
  3885 + "extern prototypes should be avoided in .h files\n" . $herecurr) &&
  3886 + $fix) {
  3887 + $fixed[$linenr - 1] =~ s/(.*)\bextern\b\s*(.*)/$1$2/;
  3888 + }
  3889 + }
  3890 +
3881 3891 # check for new externs in .c files.
3882 3892 if ($realfile =~ /\.c$/ && defined $stat &&
3883 3893 $stat =~ /^.\s*(?:extern\s+)?$Type\s+($Ident)(\s*)\(/s)