[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/2] fix GCC 5.0.0 logical-not-parentheses warni
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH 1/2] fix GCC 5.0.0 logical-not-parentheses warnings |
Date: |
Fri, 20 Feb 2015 15:38:06 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 |
On 20/02/2015 15:18, Radim Krčmář wrote:
> man gcc:
> Warn about logical not used on the left hand side operand of a
> comparison. This option does not warn if the RHS operand is of a
> boolean type.
>
> By preferring bool over int where sensible, but without modifying any
> depending code, make GCC happy in cases like this,
> qemu-img.c: In function ‘compare_sectors’:
> qemu-img.c:992:39: error: logical not is only applied to the left hand
> side of comparison [-Werror=logical-not-parentheses]
> if (!!memcmp(buf1, buf2, 512) != res) {
>
> hw/ide/core.c:1836 doesn't throw an error,
> assert(!!s->error == !!(s->status & ERR_STAT));
> even thought the second operand is int (and first hunk of this patch has
> a very similar case), maybe GCC developers still have a little faith in
> C programmers.
>
> Signed-off-by: Radim Krčmář <address@hidden>
> ---
> hw/net/virtio-net.c | 2 +-
> kvm-all.c | 2 +-
> qemu-img.c | 3 ++-
> 3 files changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
> index 45da34ad6129..ee234c963b6e 100644
> --- a/hw/net/virtio-net.c
> +++ b/hw/net/virtio-net.c
> @@ -120,7 +120,7 @@ static void virtio_net_vhost_status(VirtIONet *n, uint8_t
> status)
> return;
> }
>
> - if (!!n->vhost_started ==
> + if ((!!n->vhost_started) ==
> (virtio_net_started(n, status) && !nc->peer->link_down)) {
Does it still break if you just swap the terms?
Paolo
> return;
> }
> diff --git a/kvm-all.c b/kvm-all.c
> index 05a79c20e0bb..07ef62cb3227 100644
> --- a/kvm-all.c
> +++ b/kvm-all.c
> @@ -366,7 +366,7 @@ static void kvm_log_stop(MemoryListener *listener,
> }
> }
>
> -static int kvm_set_migration_log(int enable)
> +static int kvm_set_migration_log(bool enable)
> {
> KVMState *s = kvm_state;
> KVMSlot *mem;
> diff --git a/qemu-img.c b/qemu-img.c
> index e148af8a3e64..21fff2ad53d5 100644
> --- a/qemu-img.c
> +++ b/qemu-img.c
> @@ -977,7 +977,8 @@ static int is_allocated_sectors_min(const uint8_t *buf,
> int n, int *pnum,
> static int compare_sectors(const uint8_t *buf1, const uint8_t *buf2, int n,
> int *pnum)
> {
> - int res, i;
> + bool res;
> + int i;
>
> if (n <= 0) {
> *pnum = 0;
>
[Qemu-devel] [PATCH 1/2] fix GCC 5.0.0 logical-not-parentheses warnings, Radim Krčmář, 2015/02/20
- Re: [Qemu-devel] [PATCH 1/2] fix GCC 5.0.0 logical-not-parentheses warnings,
Paolo Bonzini <=
[Qemu-devel] [PATCH 0/2] Fix GCC 5.0.0 build errors, Radim Krčmář, 2015/02/20