|
@@ -5899,7 +5899,8 @@ sub process {
|
|
|
"externs should be avoided in .c files\n" . $herecurr);
|
|
|
}
|
|
|
|
|
|
- if ($realfile =~ /\.[ch]$/ && defined $stat &&
|
|
|
+# check for function declarations that have arguments without identifier names
|
|
|
+ if (defined $stat &&
|
|
|
$stat =~ /^.\s*(?:extern\s+)?$Type\s*$Ident\s*\(\s*([^{]+)\s*\)\s*;/s &&
|
|
|
$1 ne "void") {
|
|
|
my $args = trim($1);
|
|
@@ -5912,6 +5913,29 @@ sub process {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+# check for function definitions
|
|
|
+ if ($^V && $^V ge 5.10.0 &&
|
|
|
+ defined $stat &&
|
|
|
+ $stat =~ /^.\s*(?:$Storage\s+)?$Type\s*($Ident)\s*$balanced_parens\s*{/s) {
|
|
|
+ $context_function = $1;
|
|
|
+
|
|
|
+# check for multiline function definition with misplaced open brace
|
|
|
+ my $ok = 0;
|
|
|
+ my $cnt = statement_rawlines($stat);
|
|
|
+ my $herectx = $here . "\n";
|
|
|
+ for (my $n = 0; $n < $cnt; $n++) {
|
|
|
+ my $rl = raw_line($linenr, $n);
|
|
|
+ $herectx .= $rl . "\n";
|
|
|
+ $ok = 1 if ($rl =~ /^[ \+]\{/);
|
|
|
+ $ok = 1 if ($rl =~ /\{/ && $n == 0);
|
|
|
+ last if $rl =~ /^[ \+].*\{/;
|
|
|
+ }
|
|
|
+ if (!$ok) {
|
|
|
+ ERROR("OPEN_BRACE",
|
|
|
+ "open brace '{' following function definitions go on the next line\n" . $herectx);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
# checks for new __setup's
|
|
|
if ($rawline =~ /\b__setup\("([^"]*)"/) {
|
|
|
my $name = $1;
|