On Wed, 20 Mar 2024 16:24:30 +1300 Barry Song <21cnbao@xxxxxxxxx> wrote: > Hi Stephen, > Thanks for reviewing. > > On Wed, Mar 20, 2024 at 2:42 PM Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote: > > > > Hi Barry, > > > > On Wed, 20 Mar 2024 13:16:56 +1300 Barry Song <21cnbao@xxxxxxxxx> wrote: > > > > > > diff --git a/Documentation/process/coding-style.rst b/Documentation/process/coding-style.rst > > > index 9c7cf7347394..8065747fddff 100644 > > > --- a/Documentation/process/coding-style.rst > > > +++ b/Documentation/process/coding-style.rst > > > @@ -827,6 +827,13 @@ Macros with multiple statements should be enclosed in a do - while block: > > > do_this(b, c); \ > > > } while (0) > > > > > > +Function-like macros should evaluate their parameters, for unused parameters, > > > +cast them to void: > > > + > > > +.. code-block:: c > > > + > > > + #define macrofun(a) do { (void) (a); } while (0) > > > + > > > > Maybe add some comment about using a static inline function for these > > simple versions instead, if at all possible, (it is suggested just > > above this section) since that will still type check arguments. > > right, what about adding the below section together with the above (void) cast? > > +Another approach could involve utilizing a static inline function to replace > +the macro.: > + > +.. code-block:: c > + > + static inline void fun(struct foo *foo) > + { > + } > + Stronger than that please. Just tell people not to use macros in such situations. Always code it in C.