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

Michael Niedermayer michaelni
Mon Feb 2 16:02:42 CET 2009


On Mon, Feb 02, 2009 at 12:59:19PM +0100, Diego Biurrun wrote:
> 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?

no
IMHO if a warning is wrong it should be fixed without changing the generated
code. Of course there may be desireable changes in the code that might
remove a warning as a sideeffect but adding =0 is not.
If theres a =0 then the reader thinks it IS used which can in principle
lead to confusion.

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Many things microsoft did are stupid, but not doing something just because
microsoft did it is even more stupid. If everything ms did were stupid they
would be bankrupt already.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090202/7078930b/attachment.pgp>



More information about the ffmpeg-devel mailing list