From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: kwolf@redhat.com, hreitz@redhat.com, eblake@redhat.com,
vsementsov@yandex-team.ru, jsnow@redhat.com,
idryomov@gmail.com, pl@kamp.de, sw@weilnetz.de,
sstabellini@kernel.org, anthony.perard@citrix.com,
paul@xen.org, pbonzini@redhat.com, marcandre.lureau@redhat.com,
berrange@redhat.com, thuth@redhat.com, philmd@linaro.org,
stefanha@redhat.com, fam@euphon.net, quintela@redhat.com,
peterx@redhat.com, leobras@redhat.com, kraxel@redhat.com,
qemu-block@nongnu.org, xen-devel@lists.xenproject.org,
alex.bennee@linaro.org, peter.maydell@linaro.org
Subject: Re: [PATCH 0/7] Steps towards enabling -Wshadow=local
Date: Fri, 01 Sep 2023 10:05:06 +0200 [thread overview]
Message-ID: <87cyz2l3nx.fsf@pond.sub.org> (raw)
In-Reply-To: <20230831132546.3525721-1-armbru@redhat.com> (Markus Armbruster's message of "Thu, 31 Aug 2023 15:25:39 +0200")
Markus Armbruster <armbru@redhat.com> writes:
> Local variables shadowing other local variables or parameters make the
> code needlessly hard to understand. Bugs love to hide in such code.
> Evidence: PATCH 1.
>
> Enabling -Wshadow would prevent bugs like this one. But we'd have to
> clean up all the offenders first. We got a lot of them.
>
> Enabling -Wshadow=local should be less work for almost as much gain.
> I took a stab at it. There's a small, exciting part, and a large,
> boring part.
>
> The exciting part is dark preprocessor sorcery to let us nest macro
> calls without shadowing: PATCH 7.
>
> The boring part is cleaning up all the other warnings. I did some
> [PATCH 2-6], but ran out of steam long before finishing the job. Some
> 160 unique warnings remain.
>
> To see them, enable -Wshadow=local like so:
>
> diff --git a/meson.build b/meson.build
> index 98e68ef0b1..9fc4c7ac9d 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -466,6 +466,9 @@ warn_flags = [
> '-Wno-tautological-type-limit-compare',
> '-Wno-psabi',
> '-Wno-gnu-variable-sized-type-not-at-end',
> + '-Wshadow=local',
> + '-Wno-error=shadow=local',
> + '-Wno-error=shadow=compatible-local',
> ]
>
> if targetos != 'darwin'
>
> You may want to drop the -Wno-error lines.
>
> Subsystems with -Wshadow=local warnings:
>
> virtio-gpu
> virtio
> Device Tree
> Overall TCG CPUs
Philippe's "[PATCH 00/11] (few more) Steps towards enabling -Wshadow"
takes care of this one.
> Overall Audio backends
> Open Sound System (OSS) Audio backend
> vhost
> vhost-user-gpu
> Cryptography
> M68K TCG CPUs
> Dump
> ACPI/SMBIOS
> Allwinner-a10
Likewise.
> ARM TCG CPUs
> MPS2
> ASPEED BMCs
> ARM SMMU
> Virt
> Machine core
> PC Chipset
> X86 TCG CPUs
> PC
> VT-d Emulation
> IDE
Likewise.
> ARM cores
> OpenPIC interrupt controller
> q800
Likewise.
> petalogix_ml605
> MicroBlaze TCG CPUs
> Versatile PB
> Network devices
> NiosII TCG CPUs
> nvme
> PowerNV (Non-Virtualized)
> sPAPR (pseries)
> OpenTitan
> RISC-V TCG CPUs
> SCSI
> USB
> Linux user
> Network packet abstractions
Likewise.
> Network device backends
Likewise.
> Network Block Device (NBD)
> Semihosting
> Memory API
> Seccomp
> Main loop
> Hexagon TCG CPUs
> X86 KVM CPUs
> MIPS TCG CPUs
Likewise.
> PowerPC TCG CPUs
> TriCore TCG CPUs
> Common TCG code
Likewise.
> qtest
> Throttling infrastructure
> Vhost-user block device backend server
>
> Files with -Wshadow=local warnings:
>
> accel/tcg/tb-maint.c
Likewise.
> audio/audio.c
> audio/ossaudio.c
> contrib/vhost-user-gpu/vhost-user-gpu.c
> contrib/vhost-user-gpu/vugpu.h
> crypto/cipher-gnutls.c.inc
> crypto/tls-cipher-suites.c
> disas/m68k.c
> dump/dump.c
> hw/acpi/cpu_hotplug.c
> hw/arm/allwinner-r40.c
Likewise.
> hw/arm/armsse.c
> hw/arm/armv7m.c
> hw/arm/aspeed_ast2600.c
Likewise.
> hw/arm/smmuv3-internal.h
> hw/arm/smmuv3.c
> hw/arm/virt.c
Likewise.
> hw/core/machine.c
> hw/i2c/aspeed_i2c.c
> hw/i2c/pm_smbus.c
> hw/i386/acpi-build.c
> hw/i386/acpi-microvm.c
> hw/i386/intel_iommu.c
> hw/i386/pc.c
> hw/i386/x86.c
> hw/ide/ahci.c
Likewise.
> hw/intc/arm_gicv3_its.c
> hw/intc/openpic.c
> hw/loongarch/virt.c
> hw/m68k/bootinfo.h
Likewise.
> hw/microblaze/petalogix_ml605_mmu.c
> hw/misc/arm_sysctl.c
> hw/misc/aspeed_i3c.c
> hw/net/vhost_net.c
> hw/nios2/10m50_devboard.c
> hw/nvme/ns.c
> hw/ppc/pnv_psi.c
> hw/ppc/spapr.c
> hw/ppc/spapr_drc.c
> hw/ppc/spapr_pci.c
> hw/riscv/opentitan.c
> hw/scsi/mptsas.c
> hw/smbios/smbios.c
> hw/usb/desc.c
> hw/usb/dev-hub.c
> hw/usb/dev-storage.c
> hw/usb/hcd-xhci.c
> hw/usb/host-libusb.c
> hw/virtio/vhost.c
> hw/virtio/virtio-pci.c
> include/hw/cxl/cxl_device.h
> include/hw/ppc/fdt.h
> include/hw/virtio/virtio-gpu.h
> include/sysemu/device_tree.h
Likewise.
> linux-user/flatload.c
> linux-user/mmap.c
> linux-user/strace.c
> linux-user/syscall.c
> net/eth.c
Likewise.
> qemu-nbd.c
> semihosting/arm-compat-semi.c
> softmmu/device_tree.c
> softmmu/memory.c
> softmmu/physmem.c
> softmmu/qemu-seccomp.c
> softmmu/vl.c
target/arm/hvf/hvf.c
Likewise.
> target/arm/tcg/mve_helper.c
Likewise.
> target/arm/tcg/translate-m-nocp.c
Likewise.
> target/hexagon/helper_funcs_generated.c.inc
This is actually
target/hexagon/gen_helper_funcs.py
> target/hexagon/mmvec/macros.h
> target/hexagon/op_helper.c
> target/hexagon/translate.c
> target/i386/cpu.c
> target/i386/kvm/kvm.c
> target/i386/tcg/seg_helper.c
> target/i386/tcg/sysemu/svm_helper.c
> target/i386/tcg/translate.c
> target/m68k/translate.c
Likewise.
> target/mips/tcg/msa_helper.c
Likewise.
> target/mips/tcg/nanomips_translate.c.inc
Likewise.
> target/mips/tcg/translate.c
Likewise.
> target/ppc/int_helper.c
> target/riscv/cpu.c
> target/riscv/vector_helper.c
> target/tricore/translate.c
> tcg/tcg.c
Likewise.
> tests/qtest/m48t59-test.c
> tests/qtest/pflash-cfi02-test.c
> tests/unit/test-throttle.c
> util/vhost-user-server.c
prev parent reply other threads:[~2023-09-01 8:05 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-31 13:25 [PATCH 0/7] Steps towards enabling -Wshadow=local Markus Armbruster
2023-08-31 13:25 ` [PATCH 1/7] migration/rdma: Fix save_page method to fail on polling error Markus Armbruster
2023-08-31 13:38 ` Eric Blake
2023-09-19 5:40 ` Markus Armbruster
2023-08-31 20:17 ` Peter Xu
2023-09-06 3:48 ` Zhijian Li (Fujitsu)
2023-08-31 13:25 ` [PATCH 2/7] migration: Clean up local variable shadowing Markus Armbruster
2023-08-31 20:19 ` Peter Xu
2023-08-31 13:25 ` [PATCH 3/7] ui: " Markus Armbruster
2023-08-31 14:53 ` Peter Maydell
2023-09-01 8:11 ` Markus Armbruster
2023-08-31 13:25 ` [PATCH 4/7] block/dirty-bitmap: " Markus Armbruster
2023-08-31 19:29 ` Stefan Hajnoczi
2023-09-15 7:52 ` Kevin Wolf
2023-09-19 5:48 ` Markus Armbruster
2023-09-19 9:45 ` Kevin Wolf
2023-09-20 13:38 ` Markus Armbruster
2023-08-31 13:25 ` [PATCH 5/7] block/vdi: " Markus Armbruster
2023-08-31 19:26 ` Stefan Hajnoczi
2023-09-15 7:41 ` Kevin Wolf
2023-09-18 14:47 ` Markus Armbruster
2023-08-31 13:25 ` [PATCH 6/7] block: " Markus Armbruster
2023-08-31 19:24 ` Stefan Hajnoczi
2023-09-11 10:44 ` Anthony PERARD
2023-09-11 11:17 ` Ilya Dryomov
2023-09-15 8:10 ` Kevin Wolf
2023-09-18 14:49 ` Markus Armbruster
2023-08-31 13:25 ` [PATCH 7/7] qobject atomics osdep: Make a few macros more hygienic Markus Armbruster
2023-08-31 14:30 ` Eric Blake
2023-09-01 8:48 ` Markus Armbruster
2023-09-01 13:18 ` Eric Blake
2023-09-19 6:29 ` Markus Armbruster
2023-09-01 12:59 ` Cédric Le Goater
2023-09-01 14:31 ` Philippe Mathieu-Daudé
2023-09-01 14:50 ` Markus Armbruster
2023-09-01 14:54 ` Cédric Le Goater
2023-08-31 15:52 ` Richard Henderson
2023-09-01 8:12 ` Markus Armbruster
2023-09-01 8:05 ` Markus Armbruster [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87cyz2l3nx.fsf@pond.sub.org \
--to=armbru@redhat.com \
--cc=alex.bennee@linaro.org \
--cc=anthony.perard@citrix.com \
--cc=berrange@redhat.com \
--cc=eblake@redhat.com \
--cc=fam@euphon.net \
--cc=hreitz@redhat.com \
--cc=idryomov@gmail.com \
--cc=jsnow@redhat.com \
--cc=kraxel@redhat.com \
--cc=kwolf@redhat.com \
--cc=leobras@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=paul@xen.org \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=peterx@redhat.com \
--cc=philmd@linaro.org \
--cc=pl@kamp.de \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
--cc=sstabellini@kernel.org \
--cc=stefanha@redhat.com \
--cc=sw@weilnetz.de \
--cc=thuth@redhat.com \
--cc=vsementsov@yandex-team.ru \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.