[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 01/29] kernel-doc: fix processing nested structs with attributes
|
From: |
Paolo Bonzini |
|
Subject: |
[PATCH 01/29] kernel-doc: fix processing nested structs with attributes |
|
Date: |
Tue, 17 Nov 2020 17:52:44 +0100 |
From: André Almeida <andrealmeid@collabora.com>
The current regular expression for strip attributes of structs (and
for nested ones as well) also removes all whitespaces that may
surround the attribute. After that, the code will split structs and
iterate for each symbol separated by comma at the end of struct
definition (e.g. "} alias1, alias2;"). However, if the nested struct
does not have any alias and has an attribute, it will result in a
empty string at the closing bracket (e.g "};"). This will make the
split return nothing and $newmember will keep uninitialized. Fix
that, by ensuring that the attribute substitution will leave at least
one whitespace.
Signed-off-by: André Almeida <andrealmeid@collabora.com>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
scripts/kernel-doc | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/scripts/kernel-doc b/scripts/kernel-doc
index 4fbaaa05e3..d6bdb77ceb 100755
--- a/scripts/kernel-doc
+++ b/scripts/kernel-doc
@@ -1103,10 +1103,10 @@ sub dump_struct($$) {
# strip comments:
$members =~ s/\/\*.*?\*\///gos;
# strip attributes
- $members =~ s/\s*__attribute__\s*\(\([a-z0-9,_\*\s\(\)]*\)\)//gi;
- $members =~ s/\s*__aligned\s*\([^;]*\)//gos;
- $members =~ s/\s*__packed\s*//gos;
- $members =~ s/\s*CRYPTO_MINALIGN_ATTR//gos;
+ $members =~ s/\s*__attribute__\s*\(\([a-z0-9,_\*\s\(\)]*\)\)/ /gi;
+ $members =~ s/\s*__aligned\s*\([^;]*\)/ /gos;
+ $members =~ s/\s*__packed\s*/ /gos;
+ $members =~ s/\s*CRYPTO_MINALIGN_ATTR/ /gos;
# replace DECLARE_BITMAP
$members =~ s/DECLARE_BITMAP\s*\(([^,)]+),\s*([^,)]+)\)/unsigned long
$1\[BITS_TO_LONGS($2)\]/gos;
# replace DECLARE_HASHTABLE
--
2.28.0
- [RFC PATCH 00/29] kernel-doc: update from Linux 5.10, Paolo Bonzini, 2020/11/17
- [PATCH 01/29] kernel-doc: fix processing nested structs with attributes,
Paolo Bonzini <=
- [PATCH 02/29] kernel-doc: add support for ____cacheline_aligned_in_smp attribute, Paolo Bonzini, 2020/11/17
- [PATCH 03/29] scripts/kernel-doc: Add support for named variable macro arguments, Paolo Bonzini, 2020/11/17
- [PATCH 04/29] scripts: kernel-doc: proper handle @foo->bar(), Paolo Bonzini, 2020/11/17
- [PATCH 06/29] scripts: kernel-doc: accept blank lines on parameter description, Paolo Bonzini, 2020/11/17
- [PATCH 05/29] scripts: kernel-doc: accept negation like !@var, Paolo Bonzini, 2020/11/17
- [PATCH 07/29] Replace HTTP links with HTTPS ones: documentation, Paolo Bonzini, 2020/11/17
- [PATCH 08/29] scripts/kernel-doc: parse __ETHTOOL_DECLARE_LINK_MODE_MASK, Paolo Bonzini, 2020/11/17
- [PATCH 09/29] scripts/kernel-doc: handle function pointer prototypes, Paolo Bonzini, 2020/11/17
- [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