Re: drivers/usb/typec/tcpm/tcpm.c:4724:3: error: case label does not reduce to an integer constant

From: Randy Dunlap
Date: Thu Apr 21 2022 - 18:28:16 EST


Hi--

On 4/21/22 13:36, Guenter Roeck wrote:
> On 4/21/22 12:03, Naresh Kamboju wrote:
>> Linux mainline and linux next arm64 builds failed with gcc-7.3.x.
>>
>> drivers/usb/typec/tcpm/tcpm.c: In function 'run_state_machine':
>> drivers/usb/typec/tcpm/tcpm.c:4724:3: error: case label does not
>> reduce to an integer constant
>>     case BDO_MODE_TESTDATA:
>>     ^~~~
>> make[4]: *** [scripts/Makefile.build:288: drivers/usb/typec/tcpm/tcpm.o] Error 1
>>                                        ^
>> Reported-by: Linux Kernel Functional Testing <lkft@xxxxxxxxxx>
>>
>> --
>
> That code is several years old, the define is a constant, and I don't see
> a recent change in the code. What am I missing ?

See a recent patch for the same problem in a different area:

commit 1ef8715975de
Author: Borislav Petkov <bp@xxxxxxx>
Date: Tue Apr 5 17:15:08 2022 +0200

ALSA: usb-audio: Fix undefined behavior due to shift overflowing the constant

so those constants probably need to be cast to unsigned int.
(I guess)

--
~Randy