qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2 00/29] Refactoring with clang-tidy
@ 2017-07-13 16:31 Marc-André Lureau
  2017-07-13 16:31 ` [Qemu-devel] [PATCH v2 01/29] i386: use ROUND_UP macro Marc-André Lureau
                   ` (29 more replies)
  0 siblings, 30 replies; 78+ messages in thread
From: Marc-André Lureau @ 2017-07-13 16:31 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-trivial, peter.maydell, Marc-André Lureau

Hi,

Various refactring questions on previously sent series prompted me to
look at coccinelle to automate some changes again. Alas, semantic
patches are not so easy to express for me, cocci doesn't catch all
cases, is quite slow, and it doesn't seem possible to evaluate
expressions to check if E == E-1 or if E is pow2 for example.

I started looking at clang-tidy
(http://clang.llvm.org/extra/clang-tidy/) as an alternative to do some
refactoring.

Our build-system doesn't generate compile_commands.json, which is
pretty much required to use clang refactoring tools. But it is as easy
as running "bear make" to make one, using https://github.com/rizsotto/Bear.

Then, you can run checks and automate fixes (here only "qemu-round")
over the code base with:
run-clang-tidy.py -header-filter='.*' -checks='-*,qemu-round' -fix

There are some path bugs that can easily be solved, see
https://bugs.llvm.org/show_bug.cgi?id=33440 for details.

I ran 'qemu-round' check in this series, and added a few other manual
refactoring I had pending. (I'll submit other series for the rest of
the checks later)

My WIP qemu checks are here:
https://github.com/elmarco/clang-tools-extra/tree/master/clang-tidy/qemu

The "round-check" is:
https://github.com/elmarco/clang-tools-extra/blob/master/clang-tidy/qemu/RoundCheck.cpp

I don't know if you can express a semantic patch that would be as
powerful. The code remains easy to write & read imho, and quite fast
to apply. I like the tool, it's probably a good complement to
coccinelle overall.

v2:
- rebased, and resent to CC qemu-trivial
- drop slirp patch, as Samuel said he applied it on his tree
- added r-b/a-b tags

Thanks

Marc-André Lureau (29):
  i386: use ROUND_UP macro
  vnc: use QEMU_ALIGN_DOWN
  vhdx: use QEMU_ALIGN_DOWN
  vhost: use QEMU_ALIGN_DOWN
  i8254: use QEMU_ALIGN_DOWN
  pcspk: use QEMU_ALIGN_DOWN
  dmg: use DIV_ROUND_UP
  qcow2: use DIV_ROUND_UP
  vpc: use DIV_ROUND_UP
  vvfat: use DIV_ROUND_UP
  vnc: use DIV_ROUND_UP
  ui: use DIV_ROUND_UP
  vga: use DIV_ROUND_UP
  virtio-gpu: use DIV_ROUND_UP
  monitor: use DIV_ROUND_UP
  console: use DIV_ROUND_UP
  virtio-serial: use DIV_ROUND_UP
  piix: use DIV_ROUND_UP
  q35: use DIV_ROUND_UP
  usb-hub: use DIV_ROUND_UP
  msix: use DIV_ROUND_UP
  ppc: use DIV_ROUND_UP
  i386/dump: use DIV_ROUND_UP
  kvm: use DIV_ROUND_UP
  decnumber: use DIV_ROUND_UP
  i386: introduce ELF_NOTE_SIZE macro
  i386: replace g_malloc()+memcpy() with g_memdup()
  test-iov: replace g_malloc()+memcpy() with g_memdup()
  eepro100: replace g_malloc()+memcpy() with g_memdup()

 include/ui/console.h        |  2 +-
 linux-headers/asm-x86/kvm.h |  2 +-
 block/dmg.c                 |  2 +-
 block/qcow2-cluster.c       |  2 +-
 block/vhdx-log.c            |  2 +-
 block/vpc.c                 |  4 ++--
 block/vvfat.c               |  4 ++--
 hw/audio/pcspk.c            |  2 +-
 hw/char/virtio-serial-bus.c |  8 ++++----
 hw/display/vga.c            |  2 +-
 hw/display/virtio-gpu.c     |  4 ++--
 hw/i386/multiboot.c         |  3 +--
 hw/net/eepro100.c           |  3 +--
 hw/pci-host/piix.c          |  2 +-
 hw/pci-host/q35.c           |  2 +-
 hw/pci/msix.c               |  4 ++--
 hw/timer/i8254_common.c     |  4 ++--
 hw/usb/dev-hub.c            |  8 ++++----
 hw/virtio/vhost.c           |  2 +-
 libdecnumber/decNumber.c    |  2 +-
 monitor.c                   |  4 ++--
 target/i386/arch_dump.c     | 40 ++++++++++++++++++++--------------------
 target/ppc/mem_helper.c     |  2 +-
 target/ppc/translate.c      |  2 +-
 tests/test-iov.c            |  3 +--
 ui/cursor.c                 |  2 +-
 ui/vnc-enc-tight.c          |  2 +-
 ui/vnc.c                    | 10 +++++-----
 28 files changed, 63 insertions(+), 66 deletions(-)

-- 
2.13.1.395.gf7b71de06

^ permalink raw reply	[flat|nested] 78+ messages in thread

end of thread, other threads:[~2017-07-16 19:45 UTC | newest]

Thread overview: 78+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-07-13 16:31 [Qemu-devel] [PATCH v2 00/29] Refactoring with clang-tidy Marc-André Lureau
2017-07-13 16:31 ` [Qemu-devel] [PATCH v2 01/29] i386: use ROUND_UP macro Marc-André Lureau
2017-07-13 16:35   ` Eduardo Habkost
2017-07-14  8:10   ` Richard Henderson
2017-07-13 16:31 ` [Qemu-devel] [PATCH v2 02/29] vnc: use QEMU_ALIGN_DOWN Marc-André Lureau
2017-07-14  8:11   ` Richard Henderson
2017-07-13 16:31 ` [Qemu-devel] [PATCH v2 03/29] vhdx: " Marc-André Lureau
2017-07-13 20:19   ` Eric Blake
2017-07-14  8:11   ` Richard Henderson
2017-07-13 16:31 ` [Qemu-devel] [PATCH v2 04/29] vhost: " Marc-André Lureau
2017-07-14  8:12   ` Richard Henderson
2017-07-13 16:31 ` [Qemu-devel] [PATCH v2 05/29] i8254: " Marc-André Lureau
2017-07-14  4:17   ` [Qemu-devel] [Qemu-trivial] " Philippe Mathieu-Daudé
2017-07-14  8:12   ` [Qemu-devel] " Richard Henderson
2017-07-13 16:31 ` [Qemu-devel] [PATCH v2 06/29] pcspk: " Marc-André Lureau
2017-07-14  8:29   ` Richard Henderson
2017-07-13 16:31 ` [Qemu-devel] [PATCH v2 07/29] dmg: use DIV_ROUND_UP Marc-André Lureau
2017-07-14  8:31   ` Richard Henderson
2017-07-13 16:31 ` [Qemu-devel] [PATCH v2 08/29] qcow2: " Marc-André Lureau
2017-07-13 20:20   ` Eric Blake
2017-07-14  8:32   ` Richard Henderson
2017-07-13 16:31 ` [Qemu-devel] [PATCH v2 09/29] vpc: " Marc-André Lureau
2017-07-13 20:20   ` Eric Blake
2017-07-14  8:34   ` Richard Henderson
2017-07-13 16:32 ` [Qemu-devel] [PATCH v2 10/29] vvfat: " Marc-André Lureau
2017-07-13 20:21   ` Eric Blake
2017-07-14  8:35   ` Richard Henderson
2017-07-13 16:32 ` [Qemu-devel] [PATCH v2 11/29] vnc: " Marc-André Lureau
2017-07-14  8:36   ` Richard Henderson
2017-07-13 16:32 ` [Qemu-devel] [PATCH v2 12/29] ui: " Marc-André Lureau
2017-07-14  4:23   ` Philippe Mathieu-Daudé
2017-07-14  8:36   ` Richard Henderson
2017-07-13 16:32 ` [Qemu-devel] [PATCH v2 13/29] vga: " Marc-André Lureau
2017-07-14  8:37   ` Richard Henderson
2017-07-13 16:32 ` [Qemu-devel] [PATCH v2 14/29] virtio-gpu: " Marc-André Lureau
2017-07-14  4:23   ` [Qemu-devel] [Qemu-trivial] " Philippe Mathieu-Daudé
2017-07-14  8:37   ` [Qemu-devel] " Richard Henderson
2017-07-13 16:32 ` [Qemu-devel] [PATCH v2 15/29] monitor: " Marc-André Lureau
2017-07-13 17:12   ` Dr. David Alan Gilbert
2017-07-14  8:38   ` Richard Henderson
2017-07-13 16:32 ` [Qemu-devel] [PATCH v2 16/29] console: " Marc-André Lureau
2017-07-14  4:23   ` [Qemu-devel] [Qemu-trivial] " Philippe Mathieu-Daudé
2017-07-14  8:38   ` [Qemu-devel] " Richard Henderson
2017-07-13 16:32 ` [Qemu-devel] [PATCH v2 17/29] virtio-serial: " Marc-André Lureau
2017-07-14  4:22   ` Philippe Mathieu-Daudé
2017-07-14  8:39   ` Richard Henderson
2017-07-16 19:45   ` Amit Shah
2017-07-13 16:32 ` [Qemu-devel] [PATCH v2 18/29] piix: " Marc-André Lureau
2017-07-14  4:23   ` [Qemu-devel] [Qemu-trivial] " Philippe Mathieu-Daudé
2017-07-14  8:39   ` [Qemu-devel] " Richard Henderson
2017-07-13 16:32 ` [Qemu-devel] [PATCH v2 19/29] q35: " Marc-André Lureau
2017-07-14  8:39   ` Richard Henderson
2017-07-13 16:32 ` [Qemu-devel] [PATCH v2 20/29] usb-hub: " Marc-André Lureau
2017-07-14  8:40   ` Richard Henderson
2017-07-13 16:32 ` [Qemu-devel] [PATCH v2 21/29] msix: " Marc-André Lureau
2017-07-14  4:24   ` [Qemu-devel] [Qemu-trivial] " Philippe Mathieu-Daudé
2017-07-14  8:41   ` [Qemu-devel] " Richard Henderson
2017-07-13 16:32 ` [Qemu-devel] [PATCH v2 22/29] ppc: " Marc-André Lureau
2017-07-14  8:41   ` Richard Henderson
2017-07-13 16:32 ` [Qemu-devel] [PATCH v2 23/29] i386/dump: " Marc-André Lureau
2017-07-13 16:38   ` Eduardo Habkost
2017-07-14  8:41   ` Richard Henderson
2017-07-13 16:32 ` [Qemu-devel] [PATCH v2 24/29] kvm: " Marc-André Lureau
2017-07-14  8:42   ` Richard Henderson
2017-07-13 16:32 ` [Qemu-devel] [PATCH v2 25/29] decnumber: " Marc-André Lureau
2017-07-14  8:42   ` Richard Henderson
2017-07-13 16:32 ` [Qemu-devel] [PATCH v2 26/29] i386: introduce ELF_NOTE_SIZE macro Marc-André Lureau
2017-07-13 16:41   ` Eduardo Habkost
2017-07-14  8:46   ` Richard Henderson
2017-07-13 16:32 ` [Qemu-devel] [PATCH v2 27/29] i386: replace g_malloc()+memcpy() with g_memdup() Marc-André Lureau
2017-07-13 16:41   ` Eduardo Habkost
2017-07-14  8:44   ` Richard Henderson
2017-07-13 16:32 ` [Qemu-devel] [PATCH v2 28/29] test-iov: " Marc-André Lureau
2017-07-14  4:27   ` Philippe Mathieu-Daudé
2017-07-14  8:44   ` Richard Henderson
2017-07-13 16:32 ` [Qemu-devel] [PATCH v2 29/29] eepro100: " Marc-André Lureau
2017-07-14  8:45   ` Richard Henderson
2017-07-13 18:56 ` [Qemu-devel] [PATCH v2 00/29] Refactoring with clang-tidy no-reply

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).