The Wednesday 27 Aug 2014 à 12:08:54 (+0100), Stefan Hajnoczi wrote :
> The gcc 4.1.2 compiler warns that delay_ns may be uninitialized in
> mirror_iteration().
>
> There are two break statements in the do ... while loop that skip over
> the delay_ns assignment. These are probably the cause of the warning.
>
> Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>
> ---
> block/mirror.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/block/mirror.c b/block/mirror.c
> index 5e7a166..18b18e0 100644
> --- a/block/mirror.c
> +++ b/block/mirror.c
> @@ -157,7 +157,7 @@ static uint64_t coroutine_fn
> mirror_iteration(MirrorBlockJob *s)
> BlockDriverState *source = s->common.bs;
> int nb_sectors, sectors_per_chunk, nb_chunks;
> int64_t end, sector_num, next_chunk, next_sector, hbitmap_next_sector;
> - uint64_t delay_ns;
> + uint64_t delay_ns = 0;
> MirrorOp *op;
>
> s->sector_num = hbitmap_iter_next(&s->hbi);
> @@ -247,8 +247,6 @@ static uint64_t coroutine_fn
> mirror_iteration(MirrorBlockJob *s)
> next_chunk += added_chunks;
> if (!s->synced && s->common.speed) {
> delay_ns = ratelimit_calculate_delay(&s->limit, added_sectors);
> - } else {
> - delay_ns = 0;
> }
> } while (delay_ns == 0 && next_sector < end);
>
> --
> 1.9.3
>
>
Reviewed-by: Benoît Canet <benoit.ca...@nodalink.com>