Paolo Bonzini <pbonz...@redhat.com> writes:

> On 30/07/19 15:15, Eric Blake wrote:
>>> We occasionally give up and use types directly rather than their typedef
>>> names, flouting the coding style.  This patch does.  Trades messing with
>>> qemu/typedefs.h for having to write 'struct' a few times.
>
> I think Markus made the right call here.  Using "struct Foo;" in headers
> is a null price to pay if all you need is declaring a pointer-typed
> field or parameter.

Eduardo posted a patch to HACKING to clarify this non-usage of typedef
is okay.

Should we continue to mandate typedef names elsewhere?  It adds
cognitive load: you have to decide where to put the typedef, and when
not to use it.

>                      Of course this doesn't apply if you have to embed a
> struct directly, but then qemu/typedefs.h wouldn't help either.

Yes, and if this leads to an inclusion cycle, I strongly suspect "fat"
headers: since you can't embed something in itself, the cycle must
involve different things, all bunched together in the same header.

> In general unless you're adding a new subsystem, qemu/typedefs.h should
> only decrease in size, never increase.

This series grows it some.  I'll try to avoid that for v2.

>                                         (And there are certainly many
> cases where typedefs.h are not needed, but cleaning that up is
> understandably not high on the todo list).

On the other hand, low-hanging fruit.

Reply via email to