On Wed, Mar 05, 2025 at 07:25:38PM +0100, Arnd Bergmann wrote: > On Wed, Mar 5, 2025, at 18:29, Lorenzo Stoakes wrote: > > On Wed, Mar 05, 2025 at 06:27:56PM +0100, Arnd Bergmann wrote: > >> From: Arnd Bergmann <arnd@xxxxxxxx> > >> > >> The 'err' variable is set in a conditinal branch and is not > >> set otherwise: > >> > >> mm/mremap.c:1017:7: error: variable 'err' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized] > >> 1017 | if (vma->vm_start != old_addr) > >> > >> Set it to zero before the initial value is set. > >> > >> Fixes: 3129f7896afb ("mm/mremap: initial refactor of move_vma()") > >> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> > > > > Thanks for this, however this has already been fixed via Andrew doing a > > fix-patch which should land in mm-unstable,-next soon (possibly tmr?). > > > > This is entirely my bad btw, for some reason my compiler locally didn't > > catch this even with CONFIG_WERROR on which _really_ surprises me... > > Unfortunately gcc never shows warnings about conditionally uninitialized > variables. There is a -Wmaybe-uninitialized, but that has so many > false positives that it is completely useless and it is turned > off globally. OK I notice by building with LLVM=1 this is immediately reported locally, so from now on I'll make sure to do a clang build too. At least there is some means by which I can sensibly determine this! Cheers! > > Arnd