[alsa-devel] [PATCH 2/4] ASoC: codecs: msm8916: fix invalid cast to bool type

Takashi Iwai tiwai at suse.de
Mon May 15 10:14:28 CEST 2017


On Sun, 14 May 2017 11:59:45 +0200,
Mark Brown wrote:
> 
> On Tue, May 02, 2017 at 10:33:01PM +0900, Takashi Sakamoto wrote:
> 
> > This commit fixes this bug by using unsigned int type, instead of bool.
> > This bug is detected by sparse:
> 
> > smsm8916-wcd-analog.c:809:43: warning: odd constant _Bool cast (40 becomes 1)
> > smsm8916-wcd-analog.c:814:43: warning: odd constant _Bool cast (40 becomes 1)
> 
> This looks like a bug in sparse - the use of integers in a boolean
> context is totally valid and especially the fact that it is claiming
> there is a cast when clearly there is no cast is an obvious red flag, at
> the very least the message it reports is bogus.

Well, the function pm8916_wcd_analog_parse_dt() assigns a non-boolean
value (BIT(6)) to a boolean field, and the value is supposed to be
kept and passed to snd_soc_update_bits(), instead of dealing as a
boolean.  It looks rather like a buggy code to me.


thanks,

Takashi


More information about the Alsa-devel mailing list