On Tue, Jul 22, 2014 at 10:57:18AM +0900, Masahiro Yamada wrote:

> The latest GCC is so clever that it reports more warnings
> than old ones did:
> 
>  ------------------------------>8------------------------------
> 
>   board/freescale/m5253demo/flash.c: In function 'flash_get_offsets':
>   board/freescale/m5253demo/flash.c:65:23: warning: iteration 2047u
>   invokes undefined behavior [-Waggressive-loop-optimizations]
>       info->start[k + 1] = info->start[k] + CONFIG_SYS_SST_SECTSZ;
>                          ^
>   board/freescale/m5253demo/flash.c:64:3: note: containing loop
>      for (k = 0, j = 0; j < CONFIG_SYS_SST_SECT; j++, k++) {
>      ^
> 
>  ------------------------------8<------------------------------
> 
> The cause of the warning is like this:
> 
> The for statement iterates 2048 times in flash_get_offsets() func.
> (Notice CONFIG_SYS_SST_SECT is defined as 2048)
> 
> The last iteration does
>   info->start[2048] = info->start[2047] + CONFIG_SYS_SST_SECTSZ;
> causing an undefined behavior.
> 
> (Please note the array size of info->start is 2048.
> CONFIG_SYS_MAX_FLASH_SECT is defined as 2048 for this board.)
> 
> This commit fixes that so as not to overrun the info->start array.
> 
> Signed-off-by: Masahiro Yamada <[email protected]>
> Cc: Jason Jin <[email protected]>

Applied to u-boot/master, thanks!

-- 
Tom

Attachment: signature.asc
Description: Digital signature

_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to