Subject: Re: [PATCH bpf-next] bpftool: Fix compilation warning on shadowed variable

From: Daniel Borkmann <[email-masked]>
Date: Mon, 16 Dec 2019 14:24:40 +0100

On Mon, Dec 16, 2019 at 12:27:33PM +0100, Paul Chaignon wrote:
> The ident variable has already been declared at the top of the function
> and doesn't need to be re-declared.
> 
> Fixes: 985ead416df39 ("bpftool: Add skeleton codegen command")
> Signed-off-by: Paul Chaignon <[email-masked]>

One warning and one error in today's bpf-next tree's tooling. :/ This fixes
the former, applied, thanks!

[root@linux bpftool]# make

Auto-detecting system features:
...                        libbfd: [ on  ]
...        disassembler-four-args: [ on  ]
...                          zlib: [ on  ]

  CC       map_perf_ring.o
  CC       xlated_dumper.o
  CC       btf.o
  CC       tracelog.o
  CC       perf.o
  CC       cfg.o
  CC       btf_dumper.o
  CC       net.o
  CC       netlink_dumper.o
  CC       common.o
  CC       cgroup.o
  CC       gen.o
gen.c: In function ‘do_skeleton’:
gen.c:391:16: warning: declaration of ‘ident’ shadows a previous local [-Wshadow]
  391 |    const char *ident = get_map_ident(map);
      |                ^~~~~
gen.c:266:21: note: shadowed declaration is here
  266 |  const char *file, *ident;
      |                     ^~~~~
  CC       main.o
  CC       json_writer.o
  CC       prog.o
  CC       map.o
  CC       feature.o
  CC       jit_disasm.o
  CC       disasm.o
make[1]: Entering directory '/home/darkstar/trees/bpf-next/tools/lib/bpf'

Auto-detecting system features:
...                        libelf: [ on  ]
...                          zlib: [ on  ]
...                           bpf: [ on  ]

Parsed description of 117 helper function(s)
  MKDIR    staticobjs/
  CC       staticobjs/libbpf.o
  CC       staticobjs/bpf.o
  CC       staticobjs/nlattr.o
  CC       staticobjs/btf.o
btf.c: In function ‘btf__align_of’:
btf.c:303:21: error: declaration of ‘t’ shadows a previous local [-Werror=shadow]
  303 |   int i, align = 1, t;
      |                     ^
btf.c:283:25: note: shadowed declaration is here
  283 |  const struct btf_type *t = btf__type_by_id(btf, id);
      |                         ^
cc1: all warnings being treated as errors
  CC       staticobjs/libbpf_errno.o
  CC       staticobjs/str_error.o
  CC       staticobjs/netlink.o
  CC       staticobjs/bpf_prog_linfo.o
  CC       staticobjs/libbpf_probes.o
  CC       staticobjs/xsk.o
  CC       staticobjs/hashmap.o
  CC       staticobjs/btf_dump.o
  LD       staticobjs/libbpf-in.o
ld: cannot find staticobjs/btf.o: No such file or directory
make[2]: *** [/home/darkstar/trees/bpf-next/tools/build/Makefile.build:145: staticobjs/libbpf-in.o] Error 1
make[1]: *** [Makefile:182: staticobjs/libbpf-in.o] Error 2
make[1]: Leaving directory '/home/darkstar/trees/bpf-next/tools/lib/bpf'
make: *** [Makefile:32: /home/darkstar/trees/bpf-next/tools/lib/bpf/libbpf.a] Error 2