On Thu, Jul 27, 2023 at 11:23:21AM -0700, Yonghong Song wrote: > > > On 7/27/23 4:01 AM, Jiri Olsa wrote: > > On Thu, Jul 27, 2023 at 04:25:36PM +0800, Xiangyu Chen wrote: > > > From: Xiangyu Chen <xiangyu.chen@xxxxxxxxxxxxx> > > > > > > When turn on the yocto DEBUG_BUILD flag, the build options for gcc would enable maybe-uninitialized, > > > and following warnings would be reported as below: > > > > curious, what's the gcc version? I can't reproduce that, > > and we already have all warnings enabled: > > > > CFLAGS += -Werror -Wall > > > > they seem like false warnings also, because ARRAY_SIZE(pads) > > will be always > 0 > > Agree. This definitely a false positive. > In kernel top Makefile, we have > > # Enabled with W=2, disabled by default as noisy > ifdef CONFIG_CC_IS_GCC > KBUILD_CFLAGS += -Wno-maybe-uninitialized > endif > > That means gcc -maybe-uninitialized is very noisy. nice, I think we should do the same then ;-) bt not sure how to do the gcc check though jirka > > > > > jirka > > > > > > > > | btf_dump.c: In function 'btf_dump_emit_bit_padding': > > > | btf_dump.c:916:4: error: 'pad_type' may be used uninitialized in this function [-Werror=maybe-uninitialized] > > > | 916 | btf_dump_printf(d, "\n%s%s: %d;", pfx(lvl), pad_type, > > > | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > | 917 | in_bitfield ? new_off - cur_off : 0); > > > | | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > | btf_dump.c:929:6: error: 'pad_bits' may be used uninitialized in this function [-Werror=maybe-uninitialized] > > > | 929 | if (bits == pad_bits) { > > > | | ^ > > > | btf_dump.c:913:28: error: 'new_off' may be used uninitialized in this function [-Werror=maybe-uninitialized] > > > | 913 | (new_off == next_off && roundup(cur_off, next_align * 8) != new_off) || > > > | | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > | HOSTLD scripts/mod/modpost > > > > > > Signed-off-by: Xiangyu Chen <xiangyu.chen@xxxxxxxxxxxxx> > > > --- > > > tools/lib/bpf/btf_dump.c | 4 ++-- > > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > > > diff --git a/tools/lib/bpf/btf_dump.c b/tools/lib/bpf/btf_dump.c > > > index 4d9f30bf7f01..79923c3b8777 100644 > > > --- a/tools/lib/bpf/btf_dump.c > > > +++ b/tools/lib/bpf/btf_dump.c > > > @@ -867,8 +867,8 @@ static void btf_dump_emit_bit_padding(const struct btf_dump *d, > > > } pads[] = { > > > {"long", d->ptr_sz * 8}, {"int", 32}, {"short", 16}, {"char", 8} > > > }; > > > - int new_off, pad_bits, bits, i; > > > - const char *pad_type; > > > + int new_off = 0, pad_bits = 0, bits, i; > > > + const char *pad_type = NULL; > > > if (cur_off >= next_off) > > > return; /* no gap */ > > > -- > > > 2.34.1 > > > > > > > >