qemu/bsd-user
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
..
freebsd bsd-user: Fix syscall format, add strace support for more syscalls 2014-06-11 00:25:06 +01:00
i386 Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
netbsd Preliminary BSD user emulator support 2008-10-26 20:33:16 +00:00
openbsd Fix BSD user compilation on other than OpenBSD 2008-11-22 20:34:45 +00:00
sparc Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
sparc64 Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
x86_64 remove space-tab sequences 2019-01-11 15:46:55 +01:00
bsd-mman.h Prepare for handling different BSD mmap() flags 2008-11-29 14:05:16 +00:00
bsdload.c bsd-user/bsdload.c: Remove write-only id_change variable 2017-07-21 15:00:43 +01:00
elfload.c avoid TABs in files that only contain a few 2019-01-11 15:46:56 +01:00
errno_defs.h Preliminary BSD user emulator support 2008-10-26 20:33:16 +00:00
main.c tcg: Search includes from the project root source directory 2020-01-15 15:13:10 -10:00
Makefile.objs build: move *-user/ objects to nested Makefile.objs 2012-06-07 07:17:33 +02:00
mmap.c bsd-user: include "exec/exec-all.h" which provides mmap_lock/unlock" 2018-06-01 14:15:01 +02:00
qemu.h misc: Replace zero-length arrays with flexible array member (automatic) 2020-03-16 22:07:42 +01:00
signal.c bsd-user: Clean up includes 2016-02-04 17:01:04 +00:00
strace.c bsd-user: Clean up includes 2016-02-04 17:01:04 +00:00
syscall_defs.h bsd-user: FreeBSD update 2009-10-18 15:16:08 +00:00
syscall.c build: move TARGET_GPROF to config-host.mak 2020-02-12 16:29:27 +01:00
uaccess.c bsd-user: Suppress gcc 4.x -Wpointer-sign (included in -Wall) warning 2016-04-05 17:49:41 +01:00