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