Commit 6fa6b5cb authored by Eric Biggers's avatar Eric Biggers
Browse files

docs: kdoc: Expand 'at_least' when creating parameter list



sphinx doesn't know that the kernel headers do:

    #define at_least static

Do this replacement before declarations are passed to it.

This prevents errors like the following from appearing once the
lib/crypto/ kernel-doc is wired up to the sphinx build:

   linux/Documentation/crypto/libcrypto:128: ./include/crypto/sha2.h:773: WARNING: Error in declarator or parameters
Error in declarator or parameters
Invalid C declaration: Expected ']' in end of array operator. [error at 59]
  void sha512_final (struct sha512_ctx *ctx, u8 out[at_least SHA512_DIGEST_SIZE])

Acked-by: default avatarJonathan Corbet <corbet@lwn.net>
Reviewed-by: default avatarArd Biesheuvel <ardb@kernel.org>
Acked-by: default avatarRandy Dunlap <rdunlap@infradead.org>
Tested-by: default avatarRandy Dunlap <rdunlap@infradead.org>
Link: https://lore.kernel.org/r/20260418192138.15556-2-ebiggers@kernel.org


Signed-off-by: default avatarEric Biggers <ebiggers@kernel.org>
parent 8c2f1288
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -571,6 +571,11 @@ class KernelDoc:
            # Ignore argument attributes
            arg = KernRe(r'\sPOS0?\s').sub(' ', arg)

            # Replace '[at_least ' with '[static '.  This allows sphinx to parse
            # array parameter declarations like 'char A[at_least 4]', where
            # 'at_least' is #defined to 'static' by the kernel headers.
            arg = arg.replace('[at_least ', '[static ')

            # Strip leading/trailing spaces
            arg = arg.strip()
            arg = KernRe(r'\s+').sub(' ', arg, count=1)