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

From: Randy Dunlap <[email-masked]>
Date: Thu, 21 Apr 2022 15:27:55 -0700

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 <[email-masked]>
>>
>> -- 
> 
> 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 <[email-masked]>
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