qemu/hw/i386
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
..
kvm qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
xen qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
acpi-build.c hw/i386: Include "hw/mem/nvdimm.h" 2020-03-09 15:59:31 +01:00
acpi-build.h Use scripts/clean-includes to drop redundant qemu/typedefs.h 2016-03-22 22:20:16 +01:00
amd_iommu.c hw/i386/amd_iommu: rename Error ** parameter to more common errp 2019-12-18 08:43:19 +01:00
amd_iommu.h Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
e820_memory_layout.c hw/i386/pc: Extract e820 memory layout code 2019-09-16 17:13:07 +02:00
e820_memory_layout.h hw/i386/pc: Extract e820 memory layout code 2019-09-16 17:13:07 +02:00
fw_cfg.c x86: move more x86-generic functions out of PC files 2019-12-17 19:33:50 +01:00
fw_cfg.h x86: move more x86-generic functions out of PC files 2019-12-17 19:33:50 +01:00
intel_iommu_internal.h intel_iommu: add present bit check for pasid table entries 2020-01-06 12:04:51 -05:00
intel_iommu.c hw/i386/intel_iommu: Simplify vtd_find_as_from_bus_num() logic 2020-03-08 09:27:09 -04:00
Kconfig tpm: Separate TPM_TIS and TPM_TIS_ISA configs 2020-03-05 12:18:00 -05:00
kvmvapic.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
Makefile.objs hw/i386/pc: Extract the port92 device 2019-12-17 19:33:51 +01:00
microvm.c x86/microvm: use memdev for RAM 2020-02-19 16:49:58 +00:00
multiboot.c hw/core/loader: Let load_elf() populate a field with CPU-specific flags 2020-01-29 19:28:52 +01:00
multiboot.h refer to FWCfgState explicitly 2013-06-02 18:14:02 +03:00
pc_piix.c hw/i386: Include "hw/mem/nvdimm.h" 2020-03-09 15:59:31 +01:00
pc_q35.c hw/i386: Include "hw/mem/nvdimm.h" 2020-03-09 15:59:31 +01:00
pc_sysfw.c hw/i386/pc: move shared x86 functions to x86.c and export them 2019-10-22 09:38:42 +02:00
pc.c hw/i386: Include "hw/mem/nvdimm.h" 2020-03-09 15:59:31 +01:00
port92.c hw/i386/pc: Extract the port92 device 2019-12-17 19:33:51 +01:00
trace-events hw/i386/pc: Extract the port92 device 2019-12-17 19:33:51 +01:00
vmmouse.c hw/i386/vmmouse: Fix crash when using the vmmouse on a machine without vmport 2020-02-06 11:02:48 +01:00
vmport.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
x86-iommu-stub.c hw/i386/x86-iommu: Add missing stubs 2020-01-09 11:41:25 +00:00
x86-iommu.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
x86.c misc: Replace zero-length arrays with flexible array member (automatic) 2020-03-16 22:07:42 +01:00