Dear Simon Glas,
On 13.08.2012 17:25, Andreas Bießmann wrote:
Dear Simon Glass,
On 06.01.2012 04:54, Simon Glass wrote:
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 is really annoying, but ...
Signed-off-by: Simon Glass <[email protected]>
---
common/dlmalloc.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/common/dlmalloc.c b/common/dlmalloc.c
index c645d73..0a719b4 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]);
+ mbinptr *p = &av_[2];
int i;
- for (i=2; i<(sizeof(av_)/sizeof(mbinptr)); ++i) {
- *p++ += gd->reloc_off;
- }
+
+ for (i = 2; i < ARRAY_SIZE(av_); ++i)
+ *p = (mbinptr)((ulong)*p + gd->reloc_off);
------------------^
Ouch ... isn't there something missing? Who increments the pointer? ;)
your patch breaks avr32 boards at runtime:
Will send a new version which supersedes this one and
http://patchwork.ozlabs.org/patch/176885/
Best regards
Andreas Bießmann
_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot