Subject: Re: linux-next: build failure after merge of the drivers-x86 tree

From: Hans de Goede <[email-masked]>
Date: Fri, 20 Aug 2021 12:11:40 +0200

Hi,

On 8/20/21 9:31 AM, M D wrote:
> On Fri, Aug 20, 2021 at 1:00 PM Stephen Rothwell <[email-masked]> wrote:
>>
>> Hi all,
>>
>> After merging the drivers-x86 tree, today's linux-next build (x86_64
>> allmodconfig) failed like this:
>>
>> drivers/platform/x86/ideapad-laptop.c: In function 'ideapad_wmi_notify':
>> drivers/platform/x86/ideapad-laptop.c:1469:3: error: a label can only be part of a statement and a declaration is not a statement
>>  1469 |   unsigned long result;
>>       |   ^~~~~~~~
>>
>> Caused by commit
>>
>>   18cfd76e7b84 ("ideapad-laptop: Fix Legion 5 Fn lock LED")
>>
>> I have used the drivers-x86 tree from next-20210819 for today.
>>
>> --
>> Cheers,
>> Stephen Rothwell
> 
> Hi Stephen,
> 
> Thanks for your work!
> 
> This error occurs because only a statement is allowed after a label,
> but a definition is not a statement in C99.
> This can be fixed by wrapping the case block with curly braces like this:
> case 208: {
> ...
> }

Yes, or just move the declaration of result to the beginning of
the function, which is a bit cleaner IMHO.

I've moved the declaration to the beginning of the function and
squashed this fix into the original commit. I'll do a forced
push with the squashed in fix to for-next as soon as a test-compile
completes.

Stephen, as always thank you your work on linux-next and for reporting this.

> However I don't know why my compiler did not report this error. I was
> using gcc 11.1.0 under Arch Linux.

Yes gcc 11.2.1 under Fedora also happily compiles this, and this
sat in my review-hans branch for a while and got happily compiled
by "kernel test robot <[email-masked]> " there too.

So this compile error slipped through the crack of all our (compile)
testing until Stephen caught it :)

Regards,

Hans