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

Thanks for the explanation!
Dennis

Reply via email to