File tree Expand file tree Collapse file tree 2 files changed +20
-0
lines changed Expand file tree Collapse file tree 2 files changed +20
-0
lines changed Original file line number Diff line number Diff line change @@ -906,6 +906,20 @@ Macros, Attributes and Symbols
906906
907907 See: https://lore.kernel.org/lkml/1399671106.2912.21.camel@joe-AO725/
908908
909+ **MACRO_ARG_UNUSED **
910+ If function-like macros do not utilize a parameter, it might result
911+ in a build warning. We advocate for utilizing static inline functions
912+ to replace such macros.
913+ For example, for a macro such as the one below::
914+
915+ #define test(a) do { } while (0)
916+
917+ there would be a warning like below::
918+
919+ WARNING: Argument 'a' is not used in function-like macro.
920+
921+ See: https://www.kernel.org/doc/html/latest/process/coding-style.html#macros-enums-and-rtl
922+
909923 **SINGLE_STATEMENT_DO_WHILE_MACRO **
910924 For the multi-statement macros, it is necessary to use the do-while
911925 loop to avoid unpredictable code paths. The do-while loop helps to
Original file line number Diff line number Diff line change @@ -6040,6 +6040,12 @@ sub process {
60406040 CHK(" MACRO_ARG_PRECEDENCE" ,
60416041 " Macro argument '$arg ' may be better as '($arg )' to avoid precedence issues\n " . " $herectx " );
60426042 }
6043+
6044+ # check if this is an unused argument
6045+ if ($define_stmt !~ / \b $arg \b / ) {
6046+ WARN(" MACRO_ARG_UNUSED" ,
6047+ " Argument '$arg ' is not used in function-like macro\n " . " $herectx " );
6048+ }
60436049 }
60446050
60456051# check for macros with flow control, but without ## concatenation
You can’t perform that action at this time.
0 commit comments