qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] cirrus_vga: uninitialized variable warnings


From: Aurelien Jarno
Subject: Re: [Qemu-devel] cirrus_vga: uninitialized variable warnings
Date: Thu, 6 Jan 2011 22:13:27 +0100
User-agent: Mutt/1.5.18 (2008-05-17)

On Thu, Jan 06, 2011 at 07:45:01PM +0000, Blue Swirl wrote:
> There are a few variables which appear uninitialized to GCC 4.6.0:

It's due to my commit 92d675d1c1f23f3617e24b63c825074a1d1da44b

>   CC    i386-softmmu/cirrus_vga.o
> /src/qemu/hw/cirrus_vga.c: In function 'cirrus_bitblt_start':
> /src/qemu/hw/cirrus_vga.c:678: warning: 'depth' may be used
> uninitialized in this function
> /src/qemu/hw/cirrus_vga.c:678: note: 'depth' was declared here
> /src/qemu/hw/cirrus_vga.c:677: warning: 'dx' may be used uninitialized
> in this function
> /src/qemu/hw/cirrus_vga.c:677: note: 'dx' was declared here
> /src/qemu/hw/cirrus_vga.c:676: warning: 'sx' may be used uninitialized
> in this function
> /src/qemu/hw/cirrus_vga.c:676: note: 'sx' was declared here
> /src/qemu/hw/cirrus_vga.c:676: warning: 'sy' may be used uninitialized
> in this function
> /src/qemu/hw/cirrus_vga.c:676: note: 'sy' was declared here
> /src/qemu/hw/cirrus_vga.c:677: warning: 'dy' may be used uninitialized
> in this function
> /src/qemu/hw/cirrus_vga.c:677: note: 'dy' was declared here
> 
> I don't think they are, since the variable use is conditional to
> notify variable:
>      if (notify)
>       qemu_console_copy(s->vga.ds,
>                         sx, sy, dx, dy,
>                         s->cirrus_blt_width / depth,
>                         s->cirrus_blt_height);

Strangely neither GCC 4.4 nor GCC 4.5 trigger such a warning, though
they are usually catching cases like that. Could it be a regression in
GCC 4.6, or do you think it's just that it wasn't detected in previous
versions?

> Perhaps the code could be rearranged to avoid the warnings? Otherwise
> we could add zero initializers.
> 

Rearranging the code doesn't seems easy, so we should probably go to
zero initializers, as in the patch below.

From: Aurelien Jarno <address@hidden>

cirrus: delete GCC 4.6 warnings

Commit 92d675d1c1f23f3617e24b63c825074a1d1da44b triggered uninitialized
variables warning with GCC 4.6. Fix them by adding zero initializers.

Signed-off-by: Aurelien Jarno <address@hidden>
---
 hw/cirrus_vga.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/hw/cirrus_vga.c b/hw/cirrus_vga.c
index 833a2eb..75d1cc6 100644
--- a/hw/cirrus_vga.c
+++ b/hw/cirrus_vga.c
@@ -673,9 +673,9 @@ static int 
cirrus_bitblt_videotovideo_patterncopy(CirrusVGAState * s)
 
 static void cirrus_do_copy(CirrusVGAState *s, int dst, int src, int w, int h)
 {
-    int sx, sy;
-    int dx, dy;
-    int depth;
+    int sx = 0, sy = 0;
+    int dx = 0, dy = 0;
+    int depth = 0;
     int notify = 0;
 
     /* make sure to only copy if it's a plain copy ROP */

-- 
Aurelien Jarno                          GPG: 1024D/F1BCDB73
address@hidden                 http://www.aurel32.net



reply via email to

[Prev in Thread] Current Thread [Next in Thread]