On Wed, Jan 26, 2022 at 10:19 AM Yonghong Song <yhs@xxxxxx> wrote: > > Compiling kernel and selftests/bpf with latest llvm like blow: > make -j LLVM=1 > make -C tools/testing/selftests/bpf -j LLVM=1 > I hit the following compilation error: > /.../prog_tests/log_buf.c:215:6: error: variable 'log_buf' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized] > if (!ASSERT_OK_PTR(raw_btf_data, "raw_btf_data_good")) > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > /.../prog_tests/log_buf.c:264:7: note: uninitialized use occurs here > free(log_buf); > ^~~~~~~ > /.../prog_tests/log_buf.c:215:2: note: remove the 'if' if its condition is always false > if (!ASSERT_OK_PTR(raw_btf_data, "raw_btf_data_good")) > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > /.../prog_tests/log_buf.c:205:15: note: initialize the variable 'log_buf' to silence this warning > char *log_buf; > ^ > = NULL > 1 error generated. > > Compiler rightfully detected that log_buf is uninitialized in one of failure path as indicated > in the above. > Yep, strange that GCC didn't detect this. Applied to bpf-next, thanks! > Proper initialization of 'log_buf' variable fixed the issue. > > Signed-off-by: Yonghong Song <yhs@xxxxxx> > --- > tools/testing/selftests/bpf/prog_tests/log_buf.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/testing/selftests/bpf/prog_tests/log_buf.c b/tools/testing/selftests/bpf/prog_tests/log_buf.c > index e469b023962b..1ef377a7e731 100644 > --- a/tools/testing/selftests/bpf/prog_tests/log_buf.c > +++ b/tools/testing/selftests/bpf/prog_tests/log_buf.c > @@ -202,7 +202,7 @@ static void bpf_btf_load_log_buf(void) > const void *raw_btf_data; > __u32 raw_btf_size; > struct btf *btf; > - char *log_buf; > + char *log_buf = NULL; > int fd = -1; > > btf = btf__new_empty(); > -- > 2.30.2 >