Re: [PATCH v4 2/2] scripts: checkpatch: check unused parameters for function-like macro

From: Joe Perches
Date: Sun Mar 31 2024 - 11:54:28 EST


On Sun, 2024-03-31 at 13:46 +0000, Mac Xu wrote:
> > On Thu, 2024-03-28 at 15:21 +1300, Barry Song wrote:
> > > From: Xining Xu <mac.xxn@xxxxxxxxxxx>
> > >
> > > If function-like macros do not utilize a parameter, it might result in a
> > > build warning. In our coding style guidelines, we advocate for utilizing
> > > static inline functions to replace such macros. This patch verifies
> > > compliance with the new rule.
> > []
> > > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
>
[]
> > It seems this logic is a bit redundant to existing
> > code and might be better added in the block that starts
> >
> > (line 6026)
> > # check if any macro arguments are reused (ignore '...' and 'type')
> >
> > as that already does each param in a #define and
> > ignores ... and type
>
> Hi Joe,
>
> Thank you for your comments with insights, as you said, code block of line 6026 is a better place to
> place this new logic, as it already handles the logic I'd wanted like extracting, splitting and trimming
> the arguments, excluding the trailing comments etc.
>
> By placing the logic in the new place, code duplicates are reduced.
>
> Here's my new code (inserted from line 6044):
> +# check if this is an unused argument
> + if ($define_stmt !~ /\b$arg\b/) {
> + WARN("UNUSED_ARG_IN_MACRO",

Perhaps
WARN("MACRO_ARG_UNUSED",
...

to better match the others above it in the block:

CHK("MACRO_ARG_REUSE",
and
CHK("MACRO_ARG_PRECEDENCE",

Other than that trivial bit, seems ok.