Vegard Nossum <vegard.nossum@xxxxxxxxxx> writes: > John wrote: > >> kernel-doc gets confused by code like the following: >> >> /** >> * define HOMA_MIN_DEFAULT_PORT - The 16-bit port space is divided into >> * two nonoverlapping regions. Ports 1-32767 are reserved exclusively >> * for well-defined server ports. The remaining ports are used for client >> * ports; these are allocated automatically by Homa. Port 0 is reserved. >> */ >> #define HOMA_MIN_DEFAULT_PORT 0x8000 >> >> It seems to use the last "-" on the line (the one in "16-bit") rather >> than the first one, so it produces the following false error message: >> >> homa.h:50: warning: expecting prototype for HOMA_MIN_DEFAULT_PORT - >> The 16(). Prototype was for HOMA_MIN_DEFAULT_PORT() instead >> >> There are similar problems if there is a ":" later on the line. > > The problem is the regex for the identifier, which is a greedy /.*/ that > matches everything up to the last - or : (i.e. $decl_end). Fix it by > tightening up this regex and not matching those characters as part of the > identifier. > > Link: https://lore.kernel.org/all/CAGXJAmzfRzE=A94NT5ETtj3bZc-=2oLg-9E5Kjh4o_-iuw1q8g@xxxxxxxxxxxxxx/ > Reported-by: John Ousterhout <ouster@xxxxxxxxxxxxxxx> > Reviewed-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx> > Tested-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx> > Signed-off-by: Vegard Nossum <vegard.nossum@xxxxxxxxxx> > --- > scripts/kernel-doc | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/scripts/kernel-doc b/scripts/kernel-doc > index 4ee843d3600e2..e57c5e989a0a8 100755 > --- a/scripts/kernel-doc > +++ b/scripts/kernel-doc > @@ -2085,7 +2085,7 @@ sub process_name($$) { > # Look for foo() or static void foo() - description; or misspelt > # identifier > elsif (/^$decl_start$fn_type?(\w+)\s*$parenthesis?\s*$decl_end?$/ || > - /^$decl_start$fn_type?(\w+.*)$parenthesis?\s*$decl_end$/) { > + /^$decl_start$fn_type?(\w+[^-:]*)$parenthesis?\s*$decl_end$/) { > $identifier = $1; Applied, thanks. jon