[U-Boot] [PATCH] board/esd/cpci405/cpci405.c: Fix GCC 4.6 warning

Marek Vasut marek.vasut at gmail.com
Thu Nov 24 18:05:15 CET 2011


> Signed-off-by: Matthias Fuchs <matthias.fuchs at esd.eu>
> ---
>  board/esd/cpci405/cpci405.c |    8 +++-----
>  1 files changed, 3 insertions(+), 5 deletions(-)
> 
> diff --git a/board/esd/cpci405/cpci405.c b/board/esd/cpci405/cpci405.c
> index 98a8584..41b5ba0 100644
> --- a/board/esd/cpci405/cpci405.c
> +++ b/board/esd/cpci405/cpci405.c
> @@ -656,7 +656,6 @@ int do_onewire(cmd_tbl_t *cmdtp, int flag, int argc,
> char * const argv[]) int i;
>  	unsigned char ow_id[6];
>  	char str[32];
> -	unsigned char ow_crc;
> 
>  	/*
>  	 * Clear 1-wire bit (open drain with pull-up)
> @@ -675,11 +674,10 @@ int do_onewire(cmd_tbl_t *cmdtp, int flag, int argc,
> char * const argv[]) OWReadByte(); /* skip family code ( == 0x01) */
>  	for (i = 0; i < 6; i++)
>  		ow_id[i] = OWReadByte();
> -	ow_crc = OWReadByte(); /* read crc */
> +	OWReadByte(); /* read crc */

Are you sure this doesn't get optimized out? Did you test this patch please?
> 
> -	sprintf(str, "%08X%04X",
> -		*(unsigned int *)&ow_id[0],
> -		*(unsigned short *)&ow_id[4]);
> +	sprintf(str, "%02X%02X%02X%02X%02X%02X",
> +		ow_id[0], ow_id[1], ow_id[2], ow_id[3], ow_id[4], ow_id[5]);
>  	printf("Setting environment variable 'ow_id' to %s\n", str);
>  	setenv("ow_id", str);

This does indeed look eerie, the old code.

Ok, good, I'll assign this gcc4.6 thing to myself and start picking these.


More information about the U-Boot mailing list