On 20/12/2024 06:02, Randy Dunlap wrote:
On 12/19/24 10:37 AM, John Ousterhout 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.
@Vegard, can you look at this, please?
I have already looked but didn't arrive at a solution.
It appears to be these lines in process_name() that are confusing the function name
and following description:
# 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$/) {
$identifier = $1;
Thanks.
Hi,
Is it just a matter of making that capture group less greedy?
diff --git a/scripts/kernel-doc b/scripts/kernel-doc
index f66070176ba31..ba9bc8760ff82 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;
$decl_type = 'function';
$identifier =~ s/^define\s+//;
We could also use [^-:]* instead of .* I guess.
Vegard