Re: [PATCH v2 1/3] media: atomisp: convert default struct values to use compound-literals with designated initializers.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2017-12-02, at 10:35:06 +0000, Jeremy Sowden wrote:
> On 2017-12-02, at 13:20:09 +0300, Dan Carpenter wrote:
> > On Fri, Dec 01, 2017 at 05:19:37PM +0000, Jeremy Sowden wrote:
> > > -#define DEFAULT_PIPE_INFO \
> > > -{ \
> > > -	{IA_CSS_BINARY_DEFAULT_FRAME_INFO},	/* output_info */ \
> > > -	{IA_CSS_BINARY_DEFAULT_FRAME_INFO},	/* vf_output_info */ \
> > > -	IA_CSS_BINARY_DEFAULT_FRAME_INFO,	/* raw_output_info */ \
> > > -	{ 0, 0},				/* output system in res */ \
> > > -	DEFAULT_SHADING_INFO,			/* shading_info */ \
> > > -	DEFAULT_GRID_INFO,			/* grid_info */ \
> > > -	0					/* num_invalid_frames */ \
> > > -}
> > > +#define DEFAULT_PIPE_INFO ( \
> >
> > Why does this have a ( now?  That can't compile can it??
>
> It does.

That was a bit terse: the macros expand to compound-literals, so
putting parens around them is no different from:

  #define THREE (3)

It's also superfluous, of course.

> > > +	(struct ia_css_pipe_info) { \
> > > +		.output_info			= {IA_CSS_BINARY_DEFAULT_FRAME_INFO}, \
> > > +		.vf_output_info			= {IA_CSS_BINARY_DEFAULT_FRAME_INFO}, \
> > > +		.raw_output_info		= IA_CSS_BINARY_DEFAULT_FRAME_INFO, \
> > > +		.output_system_in_res_info	= { 0, 0 }, \
> > > +		.shading_info			= DEFAULT_SHADING_INFO, \
> > > +		.grid_info			= DEFAULT_GRID_INFO, \
> > > +		.num_invalid_frames		= 0 \
> > > +	} \
> > > +)
>
> Checkpatch got quite shouty, e.g.:
>
>   ERROR: Macros with complex values should be enclosed in parentheses
>   #826: FILE: drivers/staging/media/atomisp/pci/atomisp2/css2400/isp/kernels/sdis/common/ia_css_sdis_common_types.h:215:
>   +#define DEFAULT_DVS_STAT_PUBLIC_DVS_GLOBAL_CFG \
>   +(struct dvs_stat_public_dvs_global_cfg) { \
>   +       .kappa          = 0, \
>   +       .match_shift    = 0, \
>   +       .ybin_mode      = 0, \
>   +}
>
> so I just wrapped all of them.

I've run checkpatch.pl against the unparenthesized patches, and it only
objects to some of the macros.  I've also taken a look at the source of
checkpatch.pl itself, and at first glance it appears that it should
accept them.  I'll see if I can work out why it's complaining.

J.

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux