[FFmpeg-devel] [PATCH] [RFC] fix 'may be used uninitialized' warnings

Diego Biurrun diego
Mon Feb 2 12:59:19 CET 2009


On Mon, Feb 02, 2009 at 12:49:43PM +0100, Michael Niedermayer wrote:
> On Mon, Feb 02, 2009 at 11:43:16AM +0100, Diego Biurrun wrote:
> > Here is a patch to fix all but one 'may be used initialized' warning
> > in FFmpeg.  Regression tests pass, so this cannot have broken things
> > too badly, but some of it may nonetheless be suspicious.
> > 
> > Please review, I will commit individual hunks as they get approved,
> > not before.
> > 
> > --- libavcodec/motion_est.c	(revision 16938)
> > +++ libavcodec/motion_est.c	(working copy)
> > @@ -536,7 +536,7 @@
> >      int block;
> > -    int P[10][2];
> > +    int P[10][2] = {0, 0};
> >      int dmin_sum=0, mx4_sum=0, my4_sum=0;
> > @@ -686,7 +686,7 @@
> >      int block;
> > -    int P[10][2];
> > +    int P[10][2] = {0, 0};
> >      uint8_t * const mv_penalty= c->current_mv_penalty;
> 
> P[10][2] occurs 6 times, why is gcc complaining just about these 2 ?

I wondered myself.  I think array entries that are not initialized get
initialized to 0 automatically.

> also it would help me review if you could add -p to the switches so that the
> function names are vissble

I'll resend a patch with that switch later.

> > --- libavcodec/eatgv.c	(revision 16938)
> > +++ libavcodec/eatgv.c	(working copy)
> > @@ -63,7 +63,7 @@
> >      unsigned char *dst_end = dst + width*height;
> > -    int size,size1,size2,offset,run;
> > +    int size, size1, size2, offset = 0, run;
> >      unsigned char *dst_start = dst;
> >  
> >      if (src[0] & 0x01)
> 
> very obviously false positive, it can never be read without prior init

What about all those falso positives?  Are those hunks OK to commit?

Diego




More information about the ffmpeg-devel mailing list