Message ID | 1409137736-827-5-git-send-email-stefanha@redhat.com |
---|---|
State | New |
Headers | show |
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 <stefanha@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.canet@nodalink.com>
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);
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 <stefanha@redhat.com> --- block/mirror.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)