From: Simon Glass Date: Tue, 4 Sep 2012 11:31:07 +0000 (+0000) Subject: Fix strict-aliasing warning in dlmalloc X-Git-Tag: v2012.10-rc1~42^2~1 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=93691842e8dc86e6b2cb148c7c60a168654bbc34;p=u-boot Fix strict-aliasing warning in dlmalloc This fixes the following warnings in dlmalloc seen with my gcc 4.6. dlmalloc.c: In function 'malloc_bin_reloc': dlmalloc.c:1493: warning: dereferencing pointer 'p' does break strict-aliasing rules dlmalloc.c:1493: warning: dereferencing pointer 'p' does break strict-aliasing rules dlmalloc.c:1490: note: initialized from here dlmalloc.c:1493: note: initialized from here This version is tested on avr32 arch boards. Signed-off-by: Simon Glass Signed-off-by: Andreas Bießmann --- diff --git a/common/dlmalloc.c b/common/dlmalloc.c index c645d7314b..1d7e527b9d 100644 --- a/common/dlmalloc.c +++ b/common/dlmalloc.c @@ -1487,11 +1487,11 @@ static mbinptr av_[NAV * 2 + 2] = { #ifdef CONFIG_NEEDS_MANUAL_RELOC void malloc_bin_reloc (void) { - unsigned long *p = (unsigned long *)(&av_[2]); - int i; - for (i=2; i<(sizeof(av_)/sizeof(mbinptr)); ++i) { - *p++ += gd->reloc_off; - } + mbinptr *p = &av_[2]; + size_t i; + + for (i = 2; i < ARRAY_SIZE(av_); ++i, ++p) + *p = (mbinptr)((ulong)*p + gd->reloc_off); } #endif