Re: [RFC PATCH] checkpatch: check for function calls with struct or union on stack

From: Joe Perches
Date: Sat Jul 28 2018 - 13:20:53 EST


(unintentionally sent partial reply, better now)

On Sat, 2018-07-28 at 08:25 +0200, Julia Lawall wrote:
> On Fri, 27 Jul 2018, Joe Perches wrote:
[]
> > It might make sense for this sort of check to be
> > added to coccinelle or maybe as a compiler warning
> > when the struct is larger than some size.
> >
> > Original thread for Julia:
> > https://lore.kernel.org/patchwork/patch/967890/
>
> Coccinelle doesn't directly know the size of the structure, but it can
> count the number of fields. Maybe a case with an update in the function
> body

Perhaps this might be the most useful to check.

> or at least 3 fields is worth reporting on?

Maybe, maybe not. For instance:

lib/vsprintf.c uses struct printf_spec which is
5 fields totaling 8 bytes and that fits nicely in
a single register on x86-64 so there are good
reasons why structs could be passed by value.

Maybe structs with arrays or other structs would
make more sense.