[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 20/29] scripts: kernel-doc: fix typedef identification
From: |
Paolo Bonzini |
Subject: |
[PATCH 20/29] scripts: kernel-doc: fix typedef identification |
Date: |
Tue, 17 Nov 2020 17:53:03 +0100 |
From: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Some typedef expressions are output as normal functions.
As we need to be clearer about the type with Sphinx 3.x,
detect such cases.
While here, fix a wrongly-indented block.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
scripts/kernel-doc | 64 +++++++++++++++++++++++++++++-----------------
1 file changed, 41 insertions(+), 23 deletions(-)
diff --git a/scripts/kernel-doc b/scripts/kernel-doc
index 35d60af834..0c31e9ad66 100755
--- a/scripts/kernel-doc
+++ b/scripts/kernel-doc
@@ -1748,30 +1748,48 @@ sub dump_function($$) {
return;
}
- my $prms = join " ", @parameterlist;
- check_sections($file, $declaration_name, "function", $sectcheck, $prms);
-
- # This check emits a lot of warnings at the moment, because many
- # functions don't have a 'Return' doc section. So until the number
- # of warnings goes sufficiently down, the check is only performed in
- # verbose mode.
- # TODO: always perform the check.
- if ($verbose && !$noret) {
- check_return_section($file, $declaration_name, $return_type);
- }
+ my $prms = join " ", @parameterlist;
+ check_sections($file, $declaration_name, "function", $sectcheck, $prms);
+
+ # This check emits a lot of warnings at the moment, because many
+ # functions don't have a 'Return' doc section. So until the number
+ # of warnings goes sufficiently down, the check is only performed in
+ # verbose mode.
+ # TODO: always perform the check.
+ if ($verbose && !$noret) {
+ check_return_section($file, $declaration_name, $return_type);
+ }
- output_declaration($declaration_name,
- 'function',
- {'function' => $declaration_name,
- 'module' => $modulename,
- 'functiontype' => $return_type,
- 'parameterlist' => \@parameterlist,
- 'parameterdescs' => \%parameterdescs,
- 'parametertypes' => \%parametertypes,
- 'sectionlist' => \@sectionlist,
- 'sections' => \%sections,
- 'purpose' => $declaration_purpose
- });
+ # The function parser can be called with a typedef parameter.
+ # Handle it.
+ if ($return_type =~ /typedef/) {
+ output_declaration($declaration_name,
+ 'function',
+ {'function' => $declaration_name,
+ 'typedef' => 1,
+ 'module' => $modulename,
+ 'functiontype' => $return_type,
+ 'parameterlist' => \@parameterlist,
+ 'parameterdescs' => \%parameterdescs,
+ 'parametertypes' => \%parametertypes,
+ 'sectionlist' => \@sectionlist,
+ 'sections' => \%sections,
+ 'purpose' => $declaration_purpose
+ });
+ } else {
+ output_declaration($declaration_name,
+ 'function',
+ {'function' => $declaration_name,
+ 'module' => $modulename,
+ 'functiontype' => $return_type,
+ 'parameterlist' => \@parameterlist,
+ 'parameterdescs' => \%parameterdescs,
+ 'parametertypes' => \%parametertypes,
+ 'sectionlist' => \@sectionlist,
+ 'sections' => \%sections,
+ 'purpose' => $declaration_purpose
+ });
+ }
}
sub reset_state {
--
2.28.0
- [PATCH 10/29] scripts/kernel-doc: optionally treat warnings as errors, (continued)
- [PATCH 10/29] scripts/kernel-doc: optionally treat warnings as errors, Paolo Bonzini, 2020/11/17
- [PATCH 12/29] kernel-doc: add support for ____cacheline_aligned attribute, Paolo Bonzini, 2020/11/17
- [PATCH 11/29] kernel-doc: include line numbers for function prototypes, Paolo Bonzini, 2020/11/17
- [PATCH 13/29] scripts: kernel-doc: add support for typedef enum, Paolo Bonzini, 2020/11/17
- [PATCH 14/29] Revert "scripts/kerneldoc: For Sphinx 3 use c:macro for macros with arguments", Paolo Bonzini, 2020/11/17
- [PATCH 15/29] Revert "kernel-doc: Use c:struct for Sphinx 3.0 and later", Paolo Bonzini, 2020/11/17
- [PATCH 16/29] scripts: kernel-doc: make it more compatible with Sphinx 3.x, Paolo Bonzini, 2020/11/17
- [PATCH 18/29] scripts: kernel-doc: fix troubles with line counts, Paolo Bonzini, 2020/11/17
- [PATCH 17/29] scripts: kernel-doc: use a less pedantic markup for funcs on Sphinx 3.x, Paolo Bonzini, 2020/11/17
- [PATCH 19/29] scripts: kernel-doc: reimplement -nofunction argument, Paolo Bonzini, 2020/11/17
- [PATCH 20/29] scripts: kernel-doc: fix typedef identification,
Paolo Bonzini <=
- [PATCH 25/29] Revert "kernel-doc: Handle function typedefs without asterisks", Paolo Bonzini, 2020/11/17
- [PATCH 21/29] scripts: kernel-doc: don't mangle with parameter list, Paolo Bonzini, 2020/11/17
- [PATCH 22/29] scripts: kernel-doc: allow passing desired Sphinx C domain dialect, Paolo Bonzini, 2020/11/17
- [PATCH 23/29] scripts: kernel-doc: fix line number handling, Paolo Bonzini, 2020/11/17
- [PATCH 24/29] scripts: kernel-doc: try to use c:function if possible, Paolo Bonzini, 2020/11/17
- [PATCH 26/29] Revert "kernel-doc: Handle function typedefs that return pointers", Paolo Bonzini, 2020/11/17
- [PATCH 27/29] scripts: kernel-doc: fix typedef parsing, Paolo Bonzini, 2020/11/17
- [PATCH 29/29] scripts: kernel-doc: use :c:union when needed, Paolo Bonzini, 2020/11/17
- [PATCH 28/29] scripts: kernel-doc: split typedef complex regex, Paolo Bonzini, 2020/11/17
- Re: [RFC PATCH 00/29] kernel-doc: update from Linux 5.10, Peter Maydell, 2020/11/30