File tree 2 files changed +20
-0
lines changed 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
906
906
907
907
See: https://lore.kernel.org/lkml/1399671106.2912.21.camel@joe-AO725/
908
908
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
+
909
923
**SINGLE_STATEMENT_DO_WHILE_MACRO **
910
924
For the multi-statement macros, it is necessary to use the do-while
911
925
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 {
6040
6040
CHK(" MACRO_ARG_PRECEDENCE" ,
6041
6041
" Macro argument '$arg ' may be better as '($arg )' to avoid precedence issues\n " . " $herectx " );
6042
6042
}
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
+ }
6043
6049
}
6044
6050
6045
6051
# check for macros with flow control, but without ## concatenation
You can’t perform that action at this time.
0 commit comments