[libvirt] [PATCH] Disable the -Wduplicated-branches warning

Daniel P. Berrange posted 1 patch 6 years, 9 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/20170614141135.13429-1-berrange@redhat.com
m4/virt-compile-warnings.m4 | 3 +++
1 file changed, 3 insertions(+)
[libvirt] [PATCH] Disable the -Wduplicated-branches warning
Posted by Daniel P. Berrange 6 years, 9 months ago
Depending on the platform/architecture, a number of conditionals
in libvirt code expand the same on both branches. This is expected
behaviour and harmless, so disable the warning to avoid creating
unexpected build failures

Two examples, mingw32:

../../src/util/vircommand.c: In function 'virCommandWait':
../../src/util/vircommand.c:2562:51: error: this condition has identical branches [-Werror=duplicated-branches]
             *exitstatus = cmd->rawStatus ? status : WEXITSTATUS(status);
                                                   ^
and gcc7.1

In file included from util/virobject.c:28:0:
util/virobject.c: In function 'virClassNew':
util/viratomic.h:176:46: error: this condition has identical branches [-Werror=duplicated-branches]
            (void)(0 ? *(atomic) ^ *(atomic) : 0);                      \
                                             ^
util/virobject.c:144:20: note: in expansion of macro 'virAtomicIntInc'
    klass->magic = virAtomicIntInc(&magicCounter);
                   ^~~~~~~~~~~~~~~

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
---
 m4/virt-compile-warnings.m4 | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/m4/virt-compile-warnings.m4 b/m4/virt-compile-warnings.m4
index 768a5c8..d7bb172 100644
--- a/m4/virt-compile-warnings.m4
+++ b/m4/virt-compile-warnings.m4
@@ -61,6 +61,9 @@ AC_DEFUN([LIBVIRT_COMPILE_WARNINGS],[
     dontwarn="$dontwarn -Wenum-compare"
     # gcc 5.1 -Wformat-signedness mishandles enums, not ready for prime time
     dontwarn="$dontwarn -Wformat-signedness"
+    # Several conditionals expand the same on both branches
+    # depending on the particular platform/architecture
+    dontwarn="$dontwarn -Wduplicated-branches"
 
     # gcc 4.2 treats attribute(format) as an implicit attribute(nonnull),
     # which triggers spurious warnings for our usage
-- 
2.9.3

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH] Disable the -Wduplicated-branches warning
Posted by Martin Kletzander 6 years, 9 months ago
On Wed, Jun 14, 2017 at 03:11:35PM +0100, Daniel P. Berrange wrote:
>Depending on the platform/architecture, a number of conditionals
>in libvirt code expand the same on both branches. This is expected
>behaviour and harmless, so disable the warning to avoid creating
>unexpected build failures
>
>Two examples, mingw32:
>
>../../src/util/vircommand.c: In function 'virCommandWait':
>../../src/util/vircommand.c:2562:51: error: this condition has identical branches [-Werror=duplicated-branches]
>             *exitstatus = cmd->rawStatus ? status : WEXITSTATUS(status);
>                                                   ^
>and gcc7.1
>
>In file included from util/virobject.c:28:0:
>util/virobject.c: In function 'virClassNew':
>util/viratomic.h:176:46: error: this condition has identical branches [-Werror=duplicated-branches]
>            (void)(0 ? *(atomic) ^ *(atomic) : 0);                      \
>                                             ^
>util/virobject.c:144:20: note: in expansion of macro 'virAtomicIntInc'
>    klass->magic = virAtomicIntInc(&magicCounter);
>                   ^~~~~~~~~~~~~~~
>
>Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
>---
> m4/virt-compile-warnings.m4 | 3 +++
> 1 file changed, 3 insertions(+)
>

ACK

>diff --git a/m4/virt-compile-warnings.m4 b/m4/virt-compile-warnings.m4
>index 768a5c8..d7bb172 100644
>--- a/m4/virt-compile-warnings.m4
>+++ b/m4/virt-compile-warnings.m4
>@@ -61,6 +61,9 @@ AC_DEFUN([LIBVIRT_COMPILE_WARNINGS],[
>     dontwarn="$dontwarn -Wenum-compare"
>     # gcc 5.1 -Wformat-signedness mishandles enums, not ready for prime time
>     dontwarn="$dontwarn -Wformat-signedness"
>+    # Several conditionals expand the same on both branches
>+    # depending on the particular platform/architecture
>+    dontwarn="$dontwarn -Wduplicated-branches"
>
>     # gcc 4.2 treats attribute(format) as an implicit attribute(nonnull),
>     # which triggers spurious warnings for our usage
>--
>2.9.3
>
>--
>libvir-list mailing list
>libvir-list@redhat.com
>https://www.redhat.com/mailman/listinfo/libvir-list
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list