Browse Source

scripts/checkpatch.pl: add warnings for static char that could be static const char

Add warnings for possible missing const uses of
	static char foo[] = "bar"
    that could be
	static const char foo[] = "bar"
and
	static const char *foo[] = {"bar", "baz"}
    that could be
	static const char * const foo[] = {"bar", "baz"}

Signed-off-by: Joe Perches <joe@perches.com>
Cc: Mike Frysinger <vapier.adi@gmail.com>
Cc: Andy Whitcroft <apw@canonical.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Joe Perches 14 years ago
parent
commit
cb710eca68
1 changed files with 12 additions and 0 deletions
  1. 12 0
      scripts/checkpatch.pl

+ 12 - 0
scripts/checkpatch.pl

@@ -1869,6 +1869,18 @@ sub process {
 				$herecurr);
 				$herecurr);
 		}
 		}
 
 
+# check for static const char * arrays.
+		if ($line =~ /\bstatic\s+const\s+char\s*\*\s*(\w+)\s*\[\s*\]\s*=\s*/) {
+			WARN("static const char * array should probably be static const char * const\n" .
+				$herecurr);
+               }
+
+# check for static char foo[] = "bar" declarations.
+		if ($line =~ /\bstatic\s+char\s+(\w+)\s*\[\s*\]\s*=\s*"/) {
+			WARN("static char array declaration should probably be static const char\n" .
+				$herecurr);
+               }
+
 # check for new typedefs, only function parameters and sparse annotations
 # check for new typedefs, only function parameters and sparse annotations
 # make sense.
 # make sense.
 		if ($line =~ /\btypedef\s/ &&
 		if ($line =~ /\btypedef\s/ &&