kernel-doc: strip attributes even if they have an argument
An inline function can have an attribute, as in include/linux/log2.h, and kernel-doc handles this already for simple cases. However, some attributes have arguments (e.g. the "target" attribute). Handle those too. Furthermore, attributes could be at the beginning of a function declaration, before the return type. To correctly handle this case, you need to strip spaces after the attributes; otherwise, dump_function is left confused. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Acked-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Jonathan Corbet <corbet@lwn.net>
This commit is contained in:
parent
02a4f4fe52
commit
b1aaa546b5
@ -2506,7 +2506,13 @@ sub dump_function($$) {
|
|||||||
$prototype =~ s/__must_check +//;
|
$prototype =~ s/__must_check +//;
|
||||||
$prototype =~ s/__weak +//;
|
$prototype =~ s/__weak +//;
|
||||||
my $define = $prototype =~ s/^#\s*define\s+//; #ak added
|
my $define = $prototype =~ s/^#\s*define\s+//; #ak added
|
||||||
$prototype =~ s/__attribute__\s*\(\([a-z,]*\)\)//;
|
$prototype =~ s/__attribute__\s*\(\(
|
||||||
|
(?:
|
||||||
|
[\w\s]++ # attribute name
|
||||||
|
(?:\([^)]*+\))? # attribute arguments
|
||||||
|
\s*+,? # optional comma at the end
|
||||||
|
)+
|
||||||
|
\)\)\s+//x;
|
||||||
|
|
||||||
# Yes, this truly is vile. We are looking for:
|
# Yes, this truly is vile. We are looking for:
|
||||||
# 1. Return type (may be nothing if we're looking at a macro)
|
# 1. Return type (may be nothing if we're looking at a macro)
|
||||||
|
Loading…
Reference in New Issue
Block a user