From patchwork Thu Jan 6 21:13:27 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aurelien Jarno X-Patchwork-Id: 77804 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id C6544B70A3 for ; Fri, 7 Jan 2011 08:15:38 +1100 (EST) Received: from localhost ([127.0.0.1]:55813 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PaxBH-00067U-Lv for incoming@patchwork.ozlabs.org; Thu, 06 Jan 2011 16:15:35 -0500 Received: from [140.186.70.92] (port=60946 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Pax9H-000541-4t for qemu-devel@nongnu.org; Thu, 06 Jan 2011 16:13:32 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Pax9F-0001MS-QU for qemu-devel@nongnu.org; Thu, 06 Jan 2011 16:13:30 -0500 Received: from hall.aurel32.net ([88.191.126.93]:38627) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Pax9F-0001MI-EQ for qemu-devel@nongnu.org; Thu, 06 Jan 2011 16:13:29 -0500 Received: from aurel32 by hall.aurel32.net with local (Exim 4.69) (envelope-from ) id 1Pax9D-0003mQ-KL; Thu, 06 Jan 2011 22:13:27 +0100 Date: Thu, 6 Jan 2011 22:13:27 +0100 From: Aurelien Jarno To: Blue Swirl Subject: Re: [Qemu-devel] cirrus_vga: uninitialized variable warnings Message-ID: <20110106211327.GF21099@hall.aurel32.net> References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-Mailer: Mutt 1.5.18 (2008-05-17) User-Agent: Mutt/1.5.18 (2008-05-17) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) Cc: qemu-devel X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org 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 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 Acked-by: Blue Swirl --- 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 */