qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] block: Fix compiler warning (-Werror=uninitiali


From: Andreas Färber
Subject: Re: [Qemu-devel] [PATCH] block: Fix compiler warning (-Werror=uninitialized)
Date: Thu, 19 Sep 2013 18:59:23 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130801 Thunderbird/17.0.8

Am 17.09.2013 18:43, schrieb Stefan Weil:
> The patch fixes a warning from gcc (Debian 4.6.3-14+rpi1) 4.6.3:
> 
> block/stream.c:141:22: error:
> ‘copy’ may be used uninitialized in this function [-Werror=uninitialized]
> 
> This is not a real bug - a better compiler would not complain.
> 
> Now 'copy' has always a defined value, so the check for ret >= 0
> can be removed.
> 
> Signed-off-by: Stefan Weil <address@hidden>
> ---
>  block/stream.c |    5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/block/stream.c b/block/stream.c
> index 078ce4a..fc19194 100644
> --- a/block/stream.c
> +++ b/block/stream.c
> @@ -108,7 +108,7 @@ static void coroutine_fn stream_run(void *opaque)
>  
>      for (sector_num = 0; sector_num < end; sector_num += n) {
>          uint64_t delay_ns = 0;
> -        bool copy;
> +        bool copy = false;
>  
>  wait:
>          /* Note that even when no rate limit is applied we need to yield
> @@ -123,7 +123,6 @@ wait:
>                                  STREAM_BUFFER_SIZE / BDRV_SECTOR_SIZE, &n);
>          if (ret == 1) {
>              /* Allocated in the top, no need to copy.  */
> -            copy = false;
>          } else if (ret >= 0) {
>              /* Copy if allocated in the intermediate images.  Limit to the
>               * known-unallocated area [sector_num, sector_num+n).  */

Sorry for not spotting this patch earlier. This hunk looks wrong and
needs to be dropped, I believe. In the ret >= 0 && copy case, there is a
"goto wait" which would now no longer be able to go from copy == true ->
copy == false. Not sure if that can happen in practice.

Andreas

> @@ -138,7 +137,7 @@ wait:
>              copy = (ret == 1);
>          }
>          trace_stream_one_iteration(s, sector_num, n, ret);
> -        if (ret >= 0 && copy) {
> +        if (copy) {
>              if (s->common.speed) {
>                  delay_ns = ratelimit_calculate_delay(&s->limit, n);
>                  if (delay_ns > 0) {
> 


-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg



reply via email to

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