Skip to content

macro do/while (0) cleanup

Eric Blake qemu-arm qemu-devel qemu-trivial 2 versions – Applied

Status from this message: Queued now, thanks.

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 Latest7 patches 5 repliesApplied
  2. v13 patches 11 repliesSuperseded

Patches in v2 Applied

#Subject and filesSizeRepliesApplied
1/7net: Drop unusual use of do { } while (0);hw/net/pcnet.c+10 -100 replies
2/7mips: Tweak location of ';' in macrostarget/mips/msa_helper.c+18 -160 replies
3/7chardev: Use goto/label instead of do/break/while(0)chardev/char-serial.c+10 -31 reply
4/7chardev: Clean up previous patch indentationchardev/char-serial.c+32 -341 reply
5/7tests: Avoid 'do/while(false); ' in vhost-user-bridgetests/vhost-user-bridge.c+4 -20 replies
6/7maint: Fix macros with broken 'do/while(0); ' usageaudio/paaudio.c hw/adc/stm32f2xx_adc.c hw/block/m25p80.c +31 more+42 -421 reply
7/7checkpatch: Enforce proper do/while (0) stylescripts/checkpatch.pl+5 -00 replies

Reviews trailers per patch

5 of 7 patches have a Reviewed-by or Acked-by.

PatchThomas HuthPhilippe Mathieu-DaudéCornelia HuckMichael S. TsirkinDr. David Alan GilbertJuan QuintelaMarc-André Lureau
1/7R-b
2/7R-b
3/7R-b
4/7R-b
5/7
6/7A-b R-b A-b R-b
7/7

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 7 reviewers.

Read the v2 thread

Cover letter [Qemu-devel] [PATCH v2 0/7] macro do/while (0) cleanup

Noticed this by chance in the tests/ directory, so I broadened it to a grep of the entire code base. I suspect^wKNOW many of the bad macros were the victims of copy-and-paste from some other bad location (particularly given how many bit-rotten debug print macros were involved).

https://wiki.qemu.org/BiteSizedTasks#Bitrot_prevention is still left for someone else, for another day.

In v2:
- add review tags
- audit that the maint patch has no semantic change (all callers were indeed supplying ';' at the macro call-sites)
- improved commit messages
- more patches for some additional cleanups
- tighten the checkpatch rule to also flag 'while (false);'

Eric Blake (7):
net: Drop unusual use of do { } while (0);
mips: Tweak location of ';' in macros
chardev: Use goto/label instead of do/break/while(0)
chardev: Clean up previous patch indentation
tests: Avoid 'do/while(false);' in vhost-user-bridge
maint: Fix macros with broken 'do/while(0);' usage
checkpatch: Enforce proper do/while (0) style

 tests/acpi-utils.h         |  8 ++---
 ui/sdl_zoom_template.h     |  8 ++---
 audio/paaudio.c            |  4 +--
 chardev/char-serial.c      | 75 ++++++++++++++++++++++++----------------------
 hw/adc/stm32f2xx_adc.c     |  2 +-
 hw/block/m25p80.c          |  2 +-
 hw/char/cadence_uart.c     |  2 +-
 hw/char/stm32f2xx_usart.c  |  2 +-
 hw/display/cg3.c           |  2 +-
 hw/display/dpcd.c          |  2 +-
 hw/display/xlnx_dp.c       |  2 +-
 hw/dma/pl330.c             |  2 +-
 hw/dma/xlnx-zynq-devcfg.c  |  2 +-
 hw/dma/xlnx_dpdma.c        |  2 +-
 hw/i2c/i2c-ddc.c           |  2 +-
 hw/misc/auxbus.c           |  2 +-
 hw/misc/macio/mac_dbdma.c  |  4 +--
 hw/misc/mmio_interface.c   |  2 +-
 hw/misc/stm32f2xx_syscfg.c |  2 +-
 hw/misc/zynq_slcr.c        |  2 +-
 hw/net/cadence_gem.c       |  2 +-
 hw/net/pcnet.c             | 20 ++++++-------
 hw/ssi/mss-spi.c           |  2 +-
 hw/ssi/stm32f2xx_spi.c     |  2 +-
 hw/ssi/xilinx_spi.c        |  2 +-
 hw/ssi/xilinx_spips.c      |  2 +-
 hw/timer/a9gtimer.c        |  2 +-
 hw/timer/cadence_ttc.c     |  2 +-
 hw/timer/mss-timer.c       |  2 +-
 hw/timer/stm32f2xx_timer.c |  2 +-
 hw/tpm/tpm_passthrough.c   |  2 +-
 hw/tpm/tpm_tis.c           |  2 +-
 migration/rdma.c           |  2 +-
 target/arm/translate-a64.c |  2 +-
 target/mips/msa_helper.c   | 34 +++++++++++----------
 target/s390x/kvm.c         |  2 +-
 tests/tcg/test-mmap.c      |  2 +-
 tests/vhost-user-bridge.c  |  6 ++--
 scripts/checkpatch.pl      |  5 ++++
 39 files changed, 119 insertions(+), 105 deletions(-)
Signature · 1 line
2.14.3