[U-Boot] [PATCH 2/2] fsl: sys_eeprom: Fix 'may be used uninitialized' warning

Anton Vorontsov avorontsov at ru.mvista.com
Tue Sep 1 19:38:14 CEST 2009


On Tue, Sep 01, 2009 at 12:30:53PM -0500, Kumar Gala wrote:
> 
> On Sep 1, 2009, at 11:59 AM, Anton Vorontsov wrote:
> 
> >The warning is bogus, so silence it with uninitialized_var().
> >
> >Signed-off-by: Anton Vorontsov <avorontsov at ru.mvista.com>
> >---
> >board/freescale/common/sys_eeprom.c |    4 +++-
> >1 files changed, 3 insertions(+), 1 deletions(-)
> >
> >diff --git a/board/freescale/common/sys_eeprom.c
> >b/board/freescale/common/sys_eeprom.c
> >index c0fff68..a765b39 100644
> >--- a/board/freescale/common/sys_eeprom.c
> >+++ b/board/freescale/common/sys_eeprom.c
> >@@ -24,6 +24,7 @@
> > */
> >
> >#include <common.h>
> >+#include <compiler.h>
> >#include <command.h>
> >#include <i2c.h>
> >#include <linux/ctype.h>
> >@@ -204,7 +205,8 @@ static void update_crc(void)
> > */
> >static int prog_eeprom(void)
> >{
> >-	int ret, i;
> >+	int uninitialized_var(ret);
> >+	int i;
> 
> why don't we init ret = 0;  seems like we should be doing that since
> we might not enter the for loop

No, we always enter the for loop:

for (i = 0, p = &e; i < sizeof(e); i += 8, p += 8) {

sizeof(e) always > 0 because:

#if !defined(CONFIG_SYS_I2C_EEPROM_CCID) && !defined(CONFIG_SYS_I2C_EEPROM_NXID)
#error "Please define either CONFIG_SYS_I2C_EEPROM_CCID or CONFIG_SYS_I2C_EEPROM_NXID"
#endif

static struct __attribute__ ((__packed__)) eeprom {
#ifdef CONFIG_SYS_I2C_EEPROM_CCID
        u8 id[4];         /* 0x00 - 0x03 EEPROM Tag 'CCID' */
...
#endif
#ifdef CONFIG_SYS_I2C_EEPROM_NXID
        u8 id[4];         /* 0x00 - 0x03 EEPROM Tag 'NXID' */
...
#endif
} e;

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


More information about the U-Boot mailing list