[Qemu-devel] [PATCH] qapi: fix flat union on uncovered branches conditionals

Marc-André Lureau posted 1 patch 5 years, 4 months ago
Test checkpatch passed
Test asan passed
Test docker-mingw@fedora passed
Test docker-quick@centos7 passed
Test docker-clang@ubuntu passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20181217204046.14861-1-marcandre.lureau@redhat.com
scripts/qapi/common.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[Qemu-devel] [PATCH] qapi: fix flat union on uncovered branches conditionals
Posted by Marc-André Lureau 5 years, 4 months ago
Default branches variant should use the member conditional.

This fixes compilation with --disable-replication.

Fixes: 335d10cd8e2c3bb6067804b095aaf6371fc1983e

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 scripts/qapi/common.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/qapi/common.py b/scripts/qapi/common.py
index 8c2d97369e..d385a08270 100644
--- a/scripts/qapi/common.py
+++ b/scripts/qapi/common.py
@@ -1460,7 +1460,7 @@ class QAPISchemaObjectTypeVariants(object):
             cases = set([v.name for v in self.variants])
             for m in self.tag_member.type.members:
                 if m.name not in cases:
-                    v = QAPISchemaObjectTypeVariant(m.name, 'q_empty')
+                    v = QAPISchemaObjectTypeVariant(m.name, 'q_empty', m.ifcond)
                     v.set_owner(self.tag_member.owner)
                     self.variants.append(v)
         for v in self.variants:
-- 
2.20.0


Re: [Qemu-devel] [PATCH] qapi: fix flat union on uncovered branches conditionals
Posted by Markus Armbruster 5 years, 4 months ago
Marc-André Lureau <marcandre.lureau@redhat.com> writes:

> Default branches variant should use the member conditional.
>
> This fixes compilation with --disable-replication.
>
> Fixes: 335d10cd8e2c3bb6067804b095aaf6371fc1983e
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>

Queued, thanks!

Re: [Qemu-devel] [PATCH] qapi: fix flat union on uncovered branches conditionals
Posted by Thomas Huth 5 years, 4 months ago
On 2018-12-17 21:40, Marc-André Lureau wrote:
> Default branches variant should use the member conditional.
> 
> This fixes compilation with --disable-replication.
> 
> Fixes: 335d10cd8e2c3bb6067804b095aaf6371fc1983e
> 
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
>  scripts/qapi/common.py | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/scripts/qapi/common.py b/scripts/qapi/common.py
> index 8c2d97369e..d385a08270 100644
> --- a/scripts/qapi/common.py
> +++ b/scripts/qapi/common.py
> @@ -1460,7 +1460,7 @@ class QAPISchemaObjectTypeVariants(object):
>              cases = set([v.name for v in self.variants])
>              for m in self.tag_member.type.members:
>                  if m.name not in cases:
> -                    v = QAPISchemaObjectTypeVariant(m.name, 'q_empty')
> +                    v = QAPISchemaObjectTypeVariant(m.name, 'q_empty', m.ifcond)
>                      v.set_owner(self.tag_member.owner)
>                      self.variants.append(v)
>          for v in self.variants:

This fixes the compilation problem for me, indeed!

Tested-by: Thomas Huth <thuth@redhat.com>

Re: [Qemu-devel] [PATCH] qapi: fix flat union on uncovered branches conditionals
Posted by Markus Armbruster 5 years, 4 months ago
Marc-André Lureau <marcandre.lureau@redhat.com> writes:

> Default branches variant should use the member conditional.
>
> This fixes compilation with --disable-replication.
>
> Fixes: 335d10cd8e2c3bb6067804b095aaf6371fc1983e
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
>  scripts/qapi/common.py | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/scripts/qapi/common.py b/scripts/qapi/common.py
> index 8c2d97369e..d385a08270 100644
> --- a/scripts/qapi/common.py
> +++ b/scripts/qapi/common.py
> @@ -1460,7 +1460,7 @@ class QAPISchemaObjectTypeVariants(object):
>              cases = set([v.name for v in self.variants])
>              for m in self.tag_member.type.members:
>                  if m.name not in cases:
> -                    v = QAPISchemaObjectTypeVariant(m.name, 'q_empty')
> +                    v = QAPISchemaObjectTypeVariant(m.name, 'q_empty', m.ifcond)
>                      v.set_owner(self.tag_member.owner)
>                      self.variants.append(v)
>          for v in self.variants:

Long line, happy to wrap it when I apply.

I append the diff of generated code.

Reviewed-by: Markus Armbruster <armbru@redhat.com>


diff -rup qapi-gen-fb06411210/qapi-introspect.c qapi-gen-ce1a1aec47/qapi-introspect.c
--- qapi-gen-fb06411210/qapi-introspect.c	2018-12-18 08:15:43.929724950 +0100
+++ qapi-gen-ce1a1aec47/qapi-introspect.c	2018-12-18 08:11:30.927263620 +0100
@@ -10068,11 +10068,13 @@ const QLitObject qmp_schema_qlit = QLIT_
                 { "type", QLIT_QSTR("0"), },
                 {}
             })),
+#if defined(CONFIG_REPLICATION)
             QLIT_QDICT(((QLitDictEntry[]) {
                 { "case", QLIT_QSTR("replication"), },
                 { "type", QLIT_QSTR("0"), },
                 {}
             })),
+#endif /* defined(CONFIG_REPLICATION) */
             QLIT_QDICT(((QLitDictEntry[]) {
                 { "case", QLIT_QSTR("throttle"), },
                 { "type", QLIT_QSTR("0"), },
diff -rup qapi-gen-fb06411210/qapi-visit-block-core.c qapi-gen-ce1a1aec47/qapi-visit-block-core.c
--- qapi-gen-fb06411210/qapi-visit-block-core.c	2018-12-18 08:15:43.833726292 +0100
+++ qapi-gen-ce1a1aec47/qapi-visit-block-core.c	2018-12-18 08:11:30.833264935 +0100
@@ -7175,8 +7175,10 @@ void visit_type_BlockdevCreateOptions_me
         break;
     case BLOCKDEV_DRIVER_RAW:
         break;
+#if defined(CONFIG_REPLICATION)
     case BLOCKDEV_DRIVER_REPLICATION:
         break;
+#endif /* defined(CONFIG_REPLICATION) */
     case BLOCKDEV_DRIVER_THROTTLE:
         break;
     case BLOCKDEV_DRIVER_VMDK: