Re: [PATCH v1] driver core: Silence 'unused-but-set variable' warning

From: Nathan Chancellor
Date: Fri Dec 23 2022 - 12:31:25 EST


On Fri, Dec 23, 2022 at 10:31:57PM +0700, Ammar Faizi wrote:
> On 12/23/22 10:02 PM, Greg Kroah-Hartman wrote:
> > Ick, no, that's horrid and is NOT ok for kernel code, sorry.
> >
> > Please fix the compiler, this is not a "fix" in any sense of the word
> > and is not going to work at all for kernel code.

It is possible that the compiler should not emit
-Wunused-but-set-variable when the variable is assigned the return
value of a function marked with __attribute__((warn_unused_result)) but
neither compiler does that today, you'll see the exact same warning from
GCC 12.2.0:

drivers/base/module.c: In function ‘module_add_driver’:
drivers/base/module.c:36:13: error: variable ‘no_warn’ set but not used [-Werror=unused-but-set-variable]
36 | int no_warn;
| ^~~~~~~
cc1: all warnings being treated as errors

This has come up before too:

https://lore.kernel.org/20210726201924.3202278-2-morbo@xxxxxxxxxx/

> Agree.
>
> Sorry for the noise. It turned out I messed up my clang compiler flags.
> I forgot to do a "git reset --hard" before recompiling.
>
> This has nothing todo with the upstream kernel.

This warning is in W=1, which are warnings that we want to turn on at
some point but the current instances need to be fixed first, so I would
say this is still relevant to the upstream kernel.

Cheers,
Nathan