[U-Boot] [PATCH 1/2] Move uninitialized_var() macro from ubi_uboot.h to compiler.h

Anton Vorontsov avorontsov at ru.mvista.com
Tue Sep 1 20:25:18 CEST 2009


On Tue, Sep 01, 2009 at 08:11:41PM +0200, Wolfgang Denk wrote:
> Dear Anton Vorontsov,
> 
> In message <20090901165803.GA3668 at oksana.dev.rtsoft.ru> you wrote:
> > This is needed so that we could use this macro for non-UBI code.
> > 
> > Signed-off-by: Anton Vorontsov <avorontsov at ru.mvista.com>
> > ---
> >  include/compiler.h  |    3 +++
> >  include/ubi_uboot.h |    4 +---
> >  2 files changed, 4 insertions(+), 3 deletions(-)
> > 
> > diff --git a/include/compiler.h b/include/compiler.h
> > index 272fd3c..e602cce 100644
> > --- a/include/compiler.h
> > +++ b/include/compiler.h
> > @@ -122,4 +122,7 @@ typedef unsigned int            uintptr_t;
> >  
> >  #endif
> >  
> > +/* compiler options */
> > +#define uninitialized_var(x)		x = x
> 
> Please excuse my ignorance, but where and what for is such a
> definition useful?

It's used to avoid GCC warnings, i.e. when GCC isn't smart enough
to see that some variable isn't actually used uninitialized.

~/linux-2.6$ git grep uninitialized_var drivers/ | wc -l
94

We can fix the warnings by assigning some value to a variable
at declaration, but the advantage of 'x = x' trick is that it
doesn't generate any code.

Thanks,

-- 
Anton Vorontsov
email: cbouatmailru at gmail.com
irc://irc.freenode.net/bd2


More information about the U-Boot mailing list