qemu-irix/scripts
Eric Blake 02a57ae32b qapi: Forbid empty unions and useless alternates
Empty unions serve no purpose, and while we compile with gcc
which permits them, strict C99 forbids them.  We happen to inject
a dummy 'void *data' member into the C unions that represent QAPI
unions and alternates, but we want to get rid of that member (it
pollutes the namespace for no good reason), which would leave us
with an empty union if the user didn't provide any branches.  While
empty structs make sense in QAPI, empty unions don't add any
expressiveness to the QMP language.  So prohibit them at parse
time.  Update the documentation and testsuite to match.

Note that the documentation already mentioned that alternates
should have "two or more JSON data types"; so this also fixes
the code to enforce that.  However, we have existing uses of a
union type with only one branch, so the 2-or-more strictness
is intentionally limited to alternates.

Signed-off-by: Eric Blake <eblake@redhat.com>
Message-Id: <1455778109-6278-3-git-send-email-eblake@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
2016-02-19 11:08:56 +01:00
..
kvm scripts/kvm/kvm_stat: Fix tracefs access checking 2016-02-09 15:45:26 +01:00
qemu-guest-agent
qemugdb
qmp scripts/qmp: Use Python 2.6 "except E as ..." syntax 2016-02-08 17:29:54 +01:00
tracetool scripts/tracetool: Include qemu/osdep.h in generated .c files 2016-02-16 14:29:27 +00:00
analyse-9p-simpletrace.py
analyze-migration.py
check-qerror.sh
checkpatch.pl checkpatch: Eliminate false positive in case of space before square bracket in a definition 2016-02-15 20:02:09 +01:00
clean-includes scripts: Add new clean-includes script to fix C include directives 2016-01-18 16:33:32 +00:00
cleanup-trace-events.pl
cocci-macro-file.h
coverity-model.c
create_config
disas-objdump.pl
dump-guest-memory.py scripts/dump-guest-memory.py: Fix module docstring 2016-01-26 15:58:14 +01:00
extract-vsssdk-headers
feature_to_c.sh scripts/feature_to_c.sh: Include qemu/osdep.h rather than config.h 2016-02-16 14:29:27 +00:00
get_maintainer.pl get_maintainer.pl: fall back to git if only lists are found 2016-02-09 17:07:55 +01:00
gtester-cat
hxtool
make-release
make_device_config.sh
ordereddict.py
qapi-commands.py qapi: Clean up includes in generated files 2016-02-16 14:29:27 +00:00
qapi-event.py qapi: Clean up includes in generated files 2016-02-16 14:29:27 +00:00
qapi-introspect.py qapi: Clean up includes in generated files 2016-02-16 14:29:27 +00:00
qapi-types.py qapi: Clean up includes in generated files 2016-02-16 14:29:27 +00:00
qapi-visit.py qapi-visit: Honor prefix of discriminator enum 2016-02-19 11:08:56 +01:00
qapi.py qapi: Forbid empty unions and useless alternates 2016-02-19 11:08:56 +01:00
qemu-binfmt-conf.sh
qemu-gdb.py
qtest.py
refresh-pxe-roms.sh
shaderinclude.pl
signrom.py
simpletrace.py
switch-timer-api
texi2pod.pl
tracetool.py Revert "tracetool: use Python 2.4-compatible exception handling syntax" 2016-02-08 17:29:54 +01:00
update-linux-headers.sh
vmstate-static-checker.py static checker: e1000-82540em got aliased to e1000 2016-02-05 19:09:50 +05:30