[alsa-devel] Question about the right fix for a sparse warning

Sridharan, Ranjani ranjani.sridharan at intel.com
Wed Jan 29 02:11:38 CET 2020


Hi Takashi,

We're seeing the following sparse warning in the SOF code:

sound/soc/sof/sof-audio.c:86:31: warning: incorrect type in assignment
(different base types)
sound/soc/sof/sof-audio.c:86:31:    expected restricted
snd_pcm_state_t [usertype] state
sound/soc/sof/sof-audio.c:86:31:    got signed int [signed] [usertype]
[explicitly-signed] state

The line under scrutiny where we assign "state" is as follows:

state = substream->runtime->status->state;

and it is defined as
snd_pcm_state_t state;

There are other places (ex pcm_oss.c) where a similar assignment has been
used as well.

What fixes the issue is a forced cast to snd_pcm_state_t as below before
assigning:
 state = (__force snd_pcm_state_t)substream->runtime->status->state;

Do you think this is acceptable? If not, could you please suggest an
alternative?

Thanks,
Ranjani


More information about the Alsa-devel mailing list