checkpatch: add 'Prefer ARRAY_SIZE" test
Add a test for sizeof(foo)/sizeof(foo[0]) that could be ARRAY_SIZE(foo). Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
6d07d01b62
commit
b598b67060
|
@ -3227,6 +3227,19 @@ sub process {
|
|||
$herecurr);
|
||||
}
|
||||
|
||||
# check for sizeof(foo)/sizeof(foo[0]) that could be ARRAY_SIZE(foo)
|
||||
if ($line =~ m@\bsizeof\s*\(\s*($Lval)\s*\)@) {
|
||||
my $array = $1;
|
||||
if ($line =~ m@\b(sizeof\s*\(\s*\Q$array\E\s*\)\s*/\s*sizeof\s*\(\s*\Q$array\E\s*\[\s*0\s*\]\s*\))@) {
|
||||
my $array_div = $1;
|
||||
if (WARN("ARRAY_SIZE",
|
||||
"Prefer ARRAY_SIZE($array)\n" . $herecurr) &&
|
||||
$fix) {
|
||||
$fixed[$fixlinenr] =~ s/\Q$array_div\E/ARRAY_SIZE($array)/;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# check for function declarations without arguments like "int foo()"
|
||||
if ($line =~ /(\b$Type\s+$Ident)\s*\(\s*\)/) {
|
||||
if (ERROR("FUNCTION_WITHOUT_ARGS",
|
||||
|
|
Loading…
Reference in New Issue