From: Or Gerlitz
> Sent: 01 February 2017 16:40
> On Wed, Feb 1, 2017 at 1:17 PM, David Laight <david.lai...@aculab.com> wrote:
> > From: Saeed Mahameed
> >> Sent: 31 January 2017 20:59
> >> From: Or Gerlitz <ogerl...@mellanox.com>
> >>
> >> For some reason, sparse doesn't like using an expression of type (!x)
> >> with a bitwise | and &.  In order to mitigate that, we use a local
> >> variable.
> >>
> >> Since getting a typeof(bitfield) is incorrect, we cast such cases.
> > ...
> >> +                     MLX5_SET(fte_match_set_lyr_2_4, headers_c, 
> >> first_prio, (u8)mask-
> >vlan_priority);
> >
> > Ugg nasty casts...
> > ...
> >>  #define MLX5_SET(typ, p, fld, v) do { \
> >> +     typeof(v) _v = v; \
> > ..
> >
> > Why not just 'unsigned int _v = v;
> 
> Yeah, basically we could have allocate (use) the max size and assign.
> We preferred to allocate the specific instance size and use this, as using t
> he required size is cleaner.

Doesn't make a blind bit of difference.
The value is promoted to 'int' before being used in the expression.
You might as well do the promotion earlier.

        David

Reply via email to