Subject: Re: [iproute PATCH v2 2/7] Use C99 style initializers everywhere

From: Phil Sutter <[email-masked]>
Date: Wed, 22 Jun 2016 11:29:58 +0200

Hi Jakub,

On Wed, Jun 22, 2016 at 11:12:14AM +0200, Jakub Sitnicki wrote:
> On Tue, Jun 21, 2016 at 06:18 PM CEST, Phil Sutter <[email-masked]> wrote:
> > This big patch was compiled by vimgrepping for memset calls and changing
> > to C99 initializer if applicable. One notable exception is the
> > initialization of union bpf_attr in tc/tc_bpf.c: changing it would break
> > for older gcc versions (at least <=3.4.6).
> >
> > Calls to memset for struct rtattr pointer fields for parse_rtattr*()
> > were just dropped since they are not needed.
> >
> > The changes here allowed the compiler to discover some unused variables,
> > so get rid of them, too.
> >
> > Signed-off-by: Phil Sutter <[email-masked]>
> > ---
> 
> [...]
> 
> > diff --git a/bridge/fdb.c b/bridge/fdb.c
> > index be849f980a802..a59d6a9c13018 100644
> > --- a/bridge/fdb.c
> > +++ b/bridge/fdb.c
> > @@ -177,16 +177,15 @@ static int fdb_show(int argc, char **argv)
> >  		struct nlmsghdr	n;
> >  		struct ifinfomsg	ifm;
> >  		char			buf[256];
> > -	} req;
> > +	} req = {
> > +		.n.nlmsg_len = NLMSG_LENGTH(sizeof(struct ifinfomsg)),
> > +		.ifm.ifi_family = PF_BRIDGE
> > +	};
> >  
> 
> A comma is allowed after a list of initializers (IOW, after the last
> initializer). Having it would make for smaller/cleaner diffs in the
> future if new structure members get added and need to be initialized.

Good point! I knew about that already, but that's good reasoning why one
would actually want to do that intentionally.

Thanks, Phil