s390x: silence warning from GCC on uninitialized values

Submitted by Anthony Liguori on Feb. 4, 2013, 9:23 p.m.

Details

Message ID 1360013039-20444-1-git-send-email-aliguori@us.ibm.com
State New
Headers show

Commit Message

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(-)

Comments

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 hide | download patch | download mbox

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;