Patchwork s390x: silence warning from GCC on uninitialized values

login
register
mail settings
Submitter Anthony Liguori
Date Feb. 4, 2013, 9:23 p.m.
Message ID <1360013039-20444-1-git-send-email-aliguori@us.ibm.com>
Download mbox | patch
Permalink /patch/218072/
State New
Headers show

Comments

Anthony Liguori - Feb. 4, 2013, 9:23 p.m.
As best I can tell, this is a false positive.

  [aliguori@ccnode4 qemu-s390]$ make
    CC    s390x-softmmu/target-s390x/helper.o
  /home/aliguori/git/qemu/target-s390x/helper.c: In function ‘do_interrupt’:
  /home/aliguori/git/qemu/target-s390x/helper.c:673:17: error: ‘addr’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
  /home/aliguori/git/qemu/target-s390x/helper.c:620:20: note: ‘addr’ was declared here
  /home/aliguori/git/qemu/target-s390x/helper.c:673:17: error: ‘mask’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
  /home/aliguori/git/qemu/target-s390x/helper.c:620:14: note: ‘mask’ was declared here
  cc1: all warnings being treated as errors
  make[1]: *** [target-s390x/helper.o] Error 1
  make: *** [subdir-s390x-softmmu] Error 2

Cc: Cornelia Huck <cornelia.huck@de.ibm.com>
Cc: Stefan Weil <sw@weilnetz.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
---
 target-s390x/helper.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Stefan Weil - Feb. 4, 2013, 9:57 p.m.
Am 04.02.2013 22:23, schrieb Anthony Liguori:
> As best I can tell, this is a false positive.
>
>   [aliguori@ccnode4 qemu-s390]$ make
>     CC    s390x-softmmu/target-s390x/helper.o
>   /home/aliguori/git/qemu/target-s390x/helper.c: In function ‘do_interrupt’:
>   /home/aliguori/git/qemu/target-s390x/helper.c:673:17: error: ‘addr’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
>   /home/aliguori/git/qemu/target-s390x/helper.c:620:20: note: ‘addr’ was declared here
>   /home/aliguori/git/qemu/target-s390x/helper.c:673:17: error: ‘mask’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
>   /home/aliguori/git/qemu/target-s390x/helper.c:620:14: note: ‘mask’ was declared here
>   cc1: all warnings being treated as errors
>   make[1]: *** [target-s390x/helper.o] Error 1
>   make: *** [subdir-s390x-softmmu] Error 2
>

Yes, this is a false positive. A better compiler will complain when your
patch was applied because addr, mask are assigned values which are
never used...

Would it be possible to completely eliminate variable "found" and
move the DPRINTF, load_psw statements into the for loop (just before
the break statement)?

Stefan W.
Anthony Liguori - Feb. 4, 2013, 10:50 p.m.
Applied.  Thanks.

Regards,

Anthony Liguori

Patch

diff --git a/target-s390x/helper.c b/target-s390x/helper.c
index 8bd84ef..043feb2 100644
--- a/target-s390x/helper.c
+++ b/target-s390x/helper.c
@@ -617,7 +617,7 @@  static void do_ext_interrupt(CPUS390XState *env)
 
 static void do_io_interrupt(CPUS390XState *env)
 {
-    uint64_t mask, addr;
+    uint64_t mask = 0, addr = 0;
     LowCore *lowcore;
     IOIntQueue *q;
     uint8_t isc;