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
..
2014-05-08 14:19:58 -04:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:00 +02:00
2015-12-17 08:21:29 +01:00
2015-05-05 18:39:00 +02:00
2015-10-12 18:44:54 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2016-02-19 11:08:56 +01:00
2016-02-19 11:08:56 +01:00
2016-02-19 11:08:56 +01:00
2016-02-19 11:08:56 +01:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:00 +02:00
2015-10-12 18:44:54 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:00 +02:00
2015-10-12 18:44:54 +02:00
2015-05-05 18:39:00 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-21 09:56:49 +02:00
2015-09-21 09:56:49 +02:00
2015-09-21 09:56:49 +02:00
2015-09-21 09:56:49 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-12-17 08:21:27 +01:00
2015-12-17 08:21:27 +01:00
2015-12-17 08:21:27 +01:00
2015-12-17 08:21:27 +01:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-09-04 15:47:15 +02:00
2015-05-05 18:39:01 +02:00
2013-07-29 10:37:11 -05:00
2013-07-29 10:37:11 -05:00
2015-12-17 08:21:28 +01:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-10-12 18:44:54 +02:00
2014-03-11 09:07:41 -04:00
2015-10-12 18:44:54 +02:00
2014-03-11 09:07:41 -04:00
2015-12-17 08:21:28 +01:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-09-15 10:59:28 +01:00
2015-09-15 10:59:28 +01:00
2015-09-15 10:59:28 +01:00
2015-09-15 10:59:28 +01:00
2015-12-17 08:21:29 +01:00
2015-05-05 18:39:00 +02:00
2015-12-17 08:21:29 +01:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-12-17 08:21:28 +01:00
2015-05-05 18:39:02 +02:00
2014-06-23 11:01:25 -04:00
2014-06-23 11:01:25 -04:00
2014-06-23 11:01:25 -04:00
2015-06-18 14:19:47 +02:00
2015-06-18 14:19:47 +02:00
2015-06-18 14:19:47 +02:00
2015-06-18 14:19:47 +02:00
2015-10-12 18:46:49 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:00 +02:00
2015-10-12 18:46:49 +02:00
2015-09-21 09:56:49 +02:00
2015-09-21 09:56:49 +02:00
2015-09-21 09:56:49 +02:00
2015-10-12 18:46:49 +02:00
2015-05-05 18:39:00 +02:00
2015-10-12 18:44:54 +02:00
2015-05-05 18:39:00 +02:00
2015-12-17 08:21:29 +01:00
2015-10-12 18:44:54 +02:00
2015-10-12 18:44:54 +02:00
2015-10-12 18:44:54 +02:00
2016-02-19 11:08:56 +01:00
2016-02-19 11:08:56 +01:00
2016-02-19 11:08:56 +01:00
2016-02-19 11:08:56 +01:00
2015-10-12 18:46:49 +02:00
2015-05-05 18:39:00 +02:00
2015-10-12 18:46:49 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2014-05-08 14:19:58 -04:00
2014-03-11 09:07:41 -04:00
2015-05-05 18:39:01 +02:00
2014-03-11 09:07:41 -04:00
2015-05-05 18:39:01 +02:00
2014-03-11 09:07:41 -04:00
2015-05-05 18:39:01 +02:00
2014-03-11 09:07:41 -04:00
2015-10-12 18:46:49 +02:00
2014-03-11 09:07:41 -04:00
2015-05-05 18:39:01 +02:00
2014-03-11 09:07:41 -04:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2014-05-08 14:19:58 -04:00
2014-03-11 09:07:42 -04:00
2015-05-05 18:39:01 +02:00
2014-03-11 09:07:42 -04:00
2014-05-08 14:19:58 -04:00
2013-07-29 10:37:11 -05:00
2013-07-29 10:37:11 -05:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-12-17 08:21:28 +01:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2015-06-18 14:12:34 +02:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2015-06-18 14:12:34 +02:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2015-10-12 18:44:54 +02:00
2014-05-08 14:19:58 -04:00
2015-10-12 18:44:54 +02:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2015-12-17 08:21:28 +01:00
2014-05-16 10:35:59 -04:00
2014-05-16 10:35:59 -04:00
2014-05-16 10:35:59 -04:00
2014-05-16 10:35:59 -04:00
2015-12-17 08:21:28 +01:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2015-12-17 08:21:28 +01:00
2015-05-05 18:39:01 +02:00
2015-12-17 08:21:28 +01:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2014-05-08 14:19:58 -04:00
2013-07-29 10:37:11 -05:00
2013-07-29 10:37:11 -05:00
2014-05-08 14:19:58 -04:00
2013-07-29 10:37:11 -05:00
2013-07-29 10:37:11 -05:00
2014-05-08 14:19:58 -04:00
2013-07-29 10:37:11 -05:00
2013-07-29 10:37:11 -05:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-09-04 15:47:15 +02:00
2015-05-05 18:39:02 +02:00
2014-05-08 14:19:58 -04:00
2016-02-19 11:08:56 +01:00
2016-02-19 11:08:56 +01:00
2014-05-08 14:19:58 -04:00
2013-07-29 10:37:10 -05:00
2013-07-29 10:37:10 -05:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-11-02 08:30:26 +01:00
2015-11-02 08:30:26 +01:00
2015-11-02 08:30:26 +01:00
2015-11-02 08:30:26 +01:00
2015-12-17 08:21:27 +01:00
2015-12-17 08:21:27 +01:00
2015-12-17 08:21:27 +01:00
2015-12-17 08:21:27 +01:00
2015-11-02 08:30:26 +01:00
2015-11-02 08:30:26 +01:00
2015-11-02 08:30:26 +01:00
2015-11-02 08:30:26 +01:00
2015-11-02 08:30:26 +01:00
2015-11-02 08:30:26 +01:00
2015-11-02 08:30:26 +01:00
2015-11-02 08:30:26 +01:00
2015-11-02 08:30:28 +01:00
2015-11-02 08:30:28 +01:00
2015-11-02 08:30:28 +01:00
2015-11-02 08:30:28 +01:00
2015-12-17 08:21:27 +01:00
2015-12-17 08:21:27 +01:00
2015-12-17 08:21:27 +01:00
2015-12-17 08:21:27 +01:00
2015-11-02 08:30:25 +01:00
2015-11-02 08:30:25 +01:00
2015-11-02 08:30:25 +01:00
2015-11-02 08:30:25 +01:00
2015-11-02 08:30:26 +01:00
2015-11-02 08:30:26 +01:00
2015-11-02 08:30:26 +01:00
2015-11-02 08:30:26 +01:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-09-04 15:47:15 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-09-04 15:47:16 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-12-17 08:21:29 +01:00
2015-05-05 18:39:02 +02:00
2015-10-12 18:44:54 +02:00
2015-05-05 18:39:02 +02:00
2015-12-17 08:21:29 +01:00
2015-05-05 18:39:02 +02:00
2015-10-12 18:44:54 +02:00
2015-05-05 18:39:02 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2015-09-04 15:47:16 +02:00
2015-09-21 09:32:50 +02:00
2014-05-08 14:19:58 -04:00
2013-07-29 10:37:11 -05:00
2013-07-29 10:37:11 -05:00
2014-05-08 14:19:58 -04:00
2013-07-29 10:37:11 -05:00
2013-07-29 10:37:11 -05:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2014-05-08 14:19:58 -04:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-09-04 15:47:16 +02:00
2015-05-05 18:39:00 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:00 +02:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-12-17 08:21:29 +01:00
2015-10-12 18:44:54 +02:00
2015-12-17 08:21:29 +01:00
2015-10-12 18:44:54 +02:00
2015-10-12 18:44:54 +02:00
2015-10-12 18:44:54 +02:00
2015-10-12 18:44:54 +02:00
2015-12-17 08:21:28 +01:00
2016-02-19 11:08:56 +01:00
2016-02-19 11:08:56 +01:00
2016-02-19 11:08:56 +01:00
2016-02-19 11:08:56 +01:00
2015-10-12 18:46:49 +02:00
2014-03-11 09:07:41 -04:00
2015-05-05 18:39:01 +02:00
2014-03-11 09:07:41 -04:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:02 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00
2015-05-05 18:39:01 +02:00