Re: clang: mm/khugepaged.c:1729:7: error: variable 'index' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]

From: Nathan Chancellor
Date: Tue Oct 25 2022 - 16:16:34 EST


On Wed, Oct 26, 2022 at 01:43:48AM +0530, Naresh Kamboju wrote:
> Following build warning / errors noticed while building x86_64 with clang
> on Linux next-20221025 tag.
>
> Reported-by: Linux Kernel Functional Testing <lkft@xxxxxxxxxx>
>
> ## Build
> * kernel: 6.1.0-rc2
> * git: https://gitlab.com/Linaro/lkft/mirrors/next/linux-next
> * git branch: master
> * git commit: 89bf6e28373beef9577fa71f996a5f73a569617c
> * git describe: next-20221025
> * test details:
> https://qa-reports.linaro.org/lkft/linux-next-master-sanity/build/next-20221025
>
> ## Test Regressions (compared to next-20221024)
> Regressions found on x86_64:
>
> - clang-nightly-lkftconfig
> - clang-12-lkftconfig
> - clang-14-lkftconfig
> - clang-13-lkftconfig
> - clang-14-lkftconfig-kcsan
>
> make --silent --keep-going --jobs=8
> O=/home/tuxbuild/.cache/tuxmake/builds/1/build LLVM=1 LLVM_IAS=1
> ARCH=x86_64 CROSS_COMPILE=x86_64-linux-gnu- 'HOSTCC=sccache clang'
> 'CC=sccache clang'
> mm/khugepaged.c:1729:7: error: variable 'index' is used uninitialized
> whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]
> if (!xas_nomem(&xas, GFP_KERNEL)) {
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> mm/khugepaged.c:2063:47: note: uninitialized use occurs here
> trace_mm_khugepaged_collapse_file(mm, hpage, index, is_shmem,
> ^~~~~
> mm/khugepaged.c:1729:3: note: remove the 'if' if its condition is always false
> if (!xas_nomem(&xas, GFP_KERNEL)) {
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> mm/khugepaged.c:1716:6: error: variable 'index' is used uninitialized
> whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]
> if (result != SCAN_SUCCEED)
> ^~~~~~~~~~~~~~~~~~~~~~
> mm/khugepaged.c:2063:47: note: uninitialized use occurs here
> trace_mm_khugepaged_collapse_file(mm, hpage, index, is_shmem,
> ^~~~~
> mm/khugepaged.c:1716:2: note: remove the 'if' if its condition is always false
> if (result != SCAN_SUCCEED)
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~
> mm/khugepaged.c:1705:15: note: initialize the variable 'index' to
> silence this warning
> pgoff_t index, end = start + HPAGE_PMD_NR;
> ^
> = 0
> mm/khugepaged.c:1729:7: error: variable 'nr' is used uninitialized
> whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]
> if (!xas_nomem(&xas, GFP_KERNEL)) {
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> mm/khugepaged.c:2064:15: note: uninitialized use occurs here
> addr, file, nr, result);
> ^~
> mm/khugepaged.c:1729:3: note: remove the 'if' if its condition is always false
> if (!xas_nomem(&xas, GFP_KERNEL)) {
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> mm/khugepaged.c:1716:6: error: variable 'nr' is used uninitialized
> whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]
> if (result != SCAN_SUCCEED)
> ^~~~~~~~~~~~~~~~~~~~~~
> mm/khugepaged.c:2064:15: note: uninitialized use occurs here
> addr, file, nr, result);
> ^~
> mm/khugepaged.c:1716:2: note: remove the 'if' if its condition is always false
> if (result != SCAN_SUCCEED)
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~
> mm/khugepaged.c:1710:8: note: initialize the variable 'nr' to silence
> this warning
> int nr;
> ^
> = 0
> 4 errors generated.
> make[3]: *** [scripts/Makefile.build:250: mm/khugepaged.o] Error 1

I sent
https://lore.kernel.org/20221025173407.3423241-1-nathan@xxxxxxxxxx/ for
this earlier today.

Cheers,
Nathan