diff options
author | Marc-André Lureau | 2018-12-13 13:37:19 +0100 |
---|---|---|
committer | Markus Armbruster | 2018-12-14 06:52:48 +0100 |
commit | 8ee06f61e13701a54a9f76ceadafc856d279cdb6 (patch) | |
tree | cf28e74874ec50093f556b888f5cab320a0b2c9a /scripts/qapi/types.py | |
parent | qapi: add 'if' to alternate members (diff) | |
download | qemu-8ee06f61e13701a54a9f76ceadafc856d279cdb6.tar.gz qemu-8ee06f61e13701a54a9f76ceadafc856d279cdb6.tar.xz qemu-8ee06f61e13701a54a9f76ceadafc856d279cdb6.zip |
qapi: Add #if conditions to generated code members
Wrap generated enum and struct members and their supporting code with
#if/#endif, using the .ifcond members added in the previous patches.
We do enum and struct in a single patch because union tag enum and the
associated variants tie them together, and dealing with that to split
the patch doesn't seem worthwhile.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20181213123724.4866-18-marcandre.lureau@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Diffstat (limited to 'scripts/qapi/types.py')
-rw-r--r-- | scripts/qapi/types.py | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/scripts/qapi/types.py b/scripts/qapi/types.py index e8d22c5081..62d4cf9f95 100644 --- a/scripts/qapi/types.py +++ b/scripts/qapi/types.py @@ -43,6 +43,7 @@ struct %(c_name)s { def gen_struct_members(members): ret = '' for memb in members: + ret += gen_if(memb.ifcond) if memb.optional: ret += mcgen(''' bool has_%(c_name)s; @@ -52,6 +53,7 @@ def gen_struct_members(members): %(c_type)s %(c_name)s; ''', c_type=memb.type.c_type(), c_name=c_name(memb.name)) + ret += gen_endif(memb.ifcond) return ret @@ -131,11 +133,13 @@ def gen_variants(variants): for var in variants.variants: if var.type.name == 'q_empty': continue + ret += gen_if(var.ifcond) ret += mcgen(''' %(c_type)s %(c_name)s; ''', c_type=var.type.c_unboxed_type(), c_name=c_name(var.name)) + ret += gen_endif(var.ifcond) ret += mcgen(''' } u; |