On Thu, Mar 24, 2022 at 08:36:45AM -0700, Nathan Chancellor wrote:
> Clang's version of -Wunused-but-set-variable recently gained support for
> unary operations, which reveals two unused variables:
>
> fs/btrfs/block-group.c:2949:6: error: variable 'num_started' set but not used [-Werror,-Wunused-but-set-variable]
> int num_started = 0;
> ^
> fs/btrfs/block-group.c:3116:6: error: variable 'num_started' set but not used [-Werror,-Wunused-but-set-variable]
> int num_started = 0;
> ^
> 2 errors generated.
>
> These variables appear to be unused from their introduction, so just
> remove them to silence the warnings.
>
> Cc: [email protected]
> Fixes: c9dc4c657850 ("Btrfs: two stage dirty block group writeout")
> Fixes: 1bbc621ef284 ("Btrfs: allow block group cache writeout outside critical section in commit")
> Link: https://github.com/ClangBuiltLinux/linux/issues/1614
> Signed-off-by: Nathan Chancellor <[email protected]>
Added to misc-next, thanks.
> I am requesting a stable backport because this is visible with
> allmodconfig, which enables CONFIG_WERROR, breaking the build.
Yeah warning fixes are accepted in stable trees and we care about
warning-free builds. My gcc 11.1 does not produce any warning with
-Wunused-but-set-variable and we have extended the set of warnings in
the directory fs/btrfs/ that also includes that one.
> To quote Linus:
>
> "EVERYBODY should have CONFIG_WERROR=y on at least x86-64 and other
> serious architectures, unless you have some completely random
> experimental (and broken) compiler."
I have CONFIG_WERROR disabled, for own development it's quite annoying
when build fails outside of the code I care about, while I apply visual
checks of warning-free builds.