Re: [PATCH] arm64: percpu: Initialize ret in the default case

From: Dennis Zhou
Date: Tue Sep 25 2018 - 16:35:33 EST


Hi Nick,

On Tue, Sep 25, 2018 at 01:24:06PM -0700, Nick Desaulniers wrote:
> On Tue, Sep 25, 2018 at 12:45 PM Nathan Chancellor
> <natechancellor@xxxxxxxxx> wrote:
> >
> > Clang warns that if the default case is taken, ret will be
> > uninitialized.
> >
> > ./arch/arm64/include/asm/percpu.h:196:2: warning: variable 'ret' is used
> > uninitialized whenever switch default is taken
> > [-Wsometimes-uninitialized]
> > default:
> > ^~~~~~~
> > ./arch/arm64/include/asm/percpu.h:200:9: note: uninitialized use occurs
> > here
> > return ret;
> > ^~~
> > ./arch/arm64/include/asm/percpu.h:157:19: note: initialize the variable
> > 'ret' to silence this warning
> > unsigned long ret, loop;
> > ^
> > = 0
> >
> > This warning appears several times while building the erofs filesystem.
> > While it's not strictly wrong, the BUILD_BUG will prevent this from
> > becoming a true problem. Initialize ret to 0 in the default case right
> > before the BUILD_BUG to silence all of these warnings.
>
> Clang does semantic analysis BEFORE inlining/optimizations, so I can't
> determine that default is never reachable. Nathan, thanks for this
> patch.
> Reviewed-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>
>

Thanks for the explanation!
Dennis