diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 732bb3e2fe9ae028302e7e7d0a583f598ded1340..832e8150dba362d10012b777d025983d8265eb97 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -3126,6 +3126,17 @@ sub process { # check we are in a valid C source file if not then ignore this hunk next if ($realfile !~ /\.(h|c)$/); +# check if this appears to be the start function declaration, save the name + if ($sline =~ /^\+\{\s*$/ && + $prevline =~ /^\+(?:(?:(?:$Storage|$Inline)\s*)*\s*$Type\s*)?($Ident)\(/) { + $context_function = $1; + } + +# check if this appears to be the end of function declaration + if ($sline =~ /^\+\}\s*$/) { + undef $context_function; + } + # check indentation of any line with a bare else # (but not if it is a multiple line "if (foo) return bar; else return baz;") # if the previous line is a break or return and is indented 1 tab more...