scripts: kernel-doc: fix array element capture in pointer-to-func parsing
Currently, kernel-doc causes an unexpected error when array element (i.e., "type (*foo[bar])(args)") is present as pointer parameter in pointer-to-function parsing. For e.g., running kernel-doc -none on kernel/gcov/gcc_4_7.c causes this error: "Use of uninitialized value $param in regexp compilation at ...", in combination with: "warning: Function parameter or member '' not described in 'gcov_info'" Here, the parameter parsing does not take into account the presence of array element (i.e. square brackets) in $param. Provide a simple fix by adding square brackets in the regex, responsible for capturing $param. A quick evaluation, by running 'kernel-doc -none' on entire kernel-tree, reveals that no additional warning or error has been added or removed by the fix. Suggested-by: Lukas Bulwahn <lukas.bulwahn@gmail.com> Signed-off-by: Aditya Srivastava <yashsri421@gmail.com> Tested-by: Lukas Bulwahn <lukas.bulwahn@gmail.com> Link: https://lore.kernel.org/r/20210217145625.14006-1-yashsri421@gmail.com Signed-off-by: Jonathan Corbet <corbet@lwn.net>
This commit is contained in:
Родитель
163ba35ff3
Коммит
336ced2de6
|
@ -1553,7 +1553,7 @@ sub create_parameterlist($$$$) {
|
|||
} elsif ($arg =~ m/\(.+\)\s*\(/) {
|
||||
# pointer-to-function
|
||||
$arg =~ tr/#/,/;
|
||||
$arg =~ m/[^\(]+\(\*?\s*([\w\.]*)\s*\)/;
|
||||
$arg =~ m/[^\(]+\(\*?\s*([\w\[\]\.]*)\s*\)/;
|
||||
$param = $1;
|
||||
$type = $arg;
|
||||
$type =~ s/([^\(]+\(\*?)\s*$param/$1/;
|
||||
|
|
Загрузка…
Ссылка в новой задаче