|
@@ -370,6 +370,8 @@ our $typeTypedefs = qr{(?x:
|
|
|
$typeKernelTypedefs\b
|
|
|
)};
|
|
|
|
|
|
+our $zero_initializer = qr{(?:(?:0[xX])?0+$Int_type?|NULL|false)\b};
|
|
|
+
|
|
|
our $logFunctions = qr{(?x:
|
|
|
printk(?:_ratelimited|_once|)|
|
|
|
(?:[a-z0-9]+_){1,2}(?:printk|emerg|alert|crit|err|warning|warn|notice|info|debug|dbg|vdbg|devel|cont|WARN)(?:_ratelimited|_once|)|
|
|
@@ -3334,21 +3336,20 @@ sub process {
|
|
|
}
|
|
|
|
|
|
# check for global initialisers.
|
|
|
- if ($line =~ /^\+$Type\s*$Ident(?:\s+$Modifier)*\s*=\s*(?:0|NULL|false)\s*;/) {
|
|
|
+ if ($line =~ /^\+$Type\s*$Ident(?:\s+$Modifier)*\s*=\s*($zero_initializer)\s*;/) {
|
|
|
if (ERROR("GLOBAL_INITIALISERS",
|
|
|
- "do not initialise globals to 0 or NULL\n" .
|
|
|
- $herecurr) &&
|
|
|
+ "do not initialise globals to $1\n" . $herecurr) &&
|
|
|
$fix) {
|
|
|
- $fixed[$fixlinenr] =~ s/(^.$Type\s*$Ident(?:\s+$Modifier)*)\s*=\s*(0|NULL|false)\s*;/$1;/;
|
|
|
+ $fixed[$fixlinenr] =~ s/(^.$Type\s*$Ident(?:\s+$Modifier)*)\s*=\s*$zero_initializer\s*;/$1;/;
|
|
|
}
|
|
|
}
|
|
|
# check for static initialisers.
|
|
|
- if ($line =~ /^\+.*\bstatic\s.*=\s*(0|NULL|false)\s*;/) {
|
|
|
+ if ($line =~ /^\+.*\bstatic\s.*=\s*($zero_initializer)\s*;/) {
|
|
|
if (ERROR("INITIALISED_STATIC",
|
|
|
- "do not initialise statics to 0 or NULL\n" .
|
|
|
+ "do not initialise statics to $1\n" .
|
|
|
$herecurr) &&
|
|
|
$fix) {
|
|
|
- $fixed[$fixlinenr] =~ s/(\bstatic\s.*?)\s*=\s*(0|NULL|false)\s*;/$1;/;
|
|
|
+ $fixed[$fixlinenr] =~ s/(\bstatic\s.*?)\s*=\s*$zero_initializer\s*;/$1;/;
|
|
|
}
|
|
|
}
|
|
|
|