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 <sjg@chromium.org>
Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com>
master
Simon Glass 12 years ago committed by Andreas Bießmann
parent a6f0c4faa4
commit 93691842e8
  1. 10
      common/dlmalloc.c

@ -1487,11 +1487,11 @@ static mbinptr av_[NAV * 2 + 2] = {
#ifdef CONFIG_NEEDS_MANUAL_RELOC #ifdef CONFIG_NEEDS_MANUAL_RELOC
void malloc_bin_reloc (void) void malloc_bin_reloc (void)
{ {
unsigned long *p = (unsigned long *)(&av_[2]); mbinptr *p = &av_[2];
int i; size_t i;
for (i=2; i<(sizeof(av_)/sizeof(mbinptr)); ++i) {
*p++ += gd->reloc_off; for (i = 2; i < ARRAY_SIZE(av_); ++i, ++p)
} *p = (mbinptr)((ulong)*p + gd->reloc_off);
} }
#endif #endif

Loading…
Cancel
Save