qemu/tests/qtest/libqos
Philippe Mathieu-Daudé f7795e4096 misc: Replace zero-length arrays with flexible array member (automatic)
Description copied from Linux kernel commit from Gustavo A. R. Silva
(see [3]):

--v-- description start --v--

  The current codebase makes use of the zero-length array language
  extension to the C90 standard, but the preferred mechanism to
  declare variable-length types such as these ones is a flexible
  array member [1], introduced in C99:

  struct foo {
      int stuff;
      struct boo array[];
  };

  By making use of the mechanism above, we will get a compiler
  warning in case the flexible array does not occur last in the
  structure, which will help us prevent some kind of undefined
  behavior bugs from being unadvertenly introduced [2] to the
  Linux codebase from now on.

--^-- description end --^--

Do the similar housekeeping in the QEMU codebase (which uses
C99 since commit 7be41675f7).

All these instances of code were found with the help of the
following Coccinelle script:

  @@
  identifier s, m, a;
  type t, T;
  @@
   struct s {
      ...
      t m;
  -   T a[0];
  +   T a[];
  };
  @@
  identifier s, m, a;
  type t, T;
  @@
   struct s {
      ...
      t m;
  -   T a[0];
  +   T a[];
   } QEMU_PACKED;

[1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
[2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=76497732932f
[3] https://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux.git/commit/?id=17642a2fbd2c1

Inspired-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-03-16 22:07:42 +01:00
..
aarch64-xlnx-zcu102-machine.c
ahci.c
ahci.h misc: Replace zero-length arrays with flexible array member (automatic) 2020-03-16 22:07:42 +01:00
arm-imx25-pdk-machine.c
arm-n800-machine.c
arm-raspi2-machine.c
arm-sabrelite-machine.c
arm-smdkc210-machine.c
arm-virt-machine.c
arm-xilinx-zynq-a9-machine.c
e1000e.c
e1000e.h
fw_cfg.c
fw_cfg.h boot-order-test: fix memleaks in boot-order-test 2020-02-04 09:00:57 +01:00
i2c-imx.c
i2c-omap.c
i2c.c libqos: rename i2c_send and i2c_recv 2020-02-22 08:26:48 +00:00
i2c.h libqos: rename i2c_send and i2c_recv 2020-02-22 08:26:48 +00:00
libqos-pc.c
libqos-pc.h
libqos-spapr.c
libqos-spapr.h
libqos.c
libqos.h
malloc-pc.c
malloc-pc.h
malloc-spapr.c
malloc-spapr.h
malloc.c
malloc.h
pci-pc.c
pci-pc.h
pci-spapr.c
pci-spapr.h
pci.c
pci.h
ppc64_pseries-machine.c
qgraph_internal.h
qgraph.c tests/qtest/libqos/qgraph: Remove superfluous semicolons 2020-02-18 20:20:49 +01:00
qgraph.h
qos_external.c libqos: move useful qos-test funcs to qos_external 2020-02-22 08:26:48 +00:00
qos_external.h libqos: move useful qos-test funcs to qos_external 2020-02-22 08:26:48 +00:00
rtas.c
rtas.h
sdhci.c
sdhci.h
tpci200.c
usb.c
usb.h
virtio-9p.c
virtio-9p.h
virtio-balloon.c
virtio-balloon.h
virtio-blk.c
virtio-blk.h
virtio-mmio.c
virtio-mmio.h
virtio-net.c
virtio-net.h
virtio-pci-modern.c
virtio-pci-modern.h
virtio-pci.c
virtio-pci.h
virtio-rng.c
virtio-rng.h
virtio-scsi.c
virtio-scsi.h
virtio-serial.c
virtio-serial.h
virtio.c
virtio.h
x86_64_pc-machine.c