This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Does nano-malloc support target without unaligned load/store instructions?


In nano-mallocr.c,
262     while (r)
263     {
264         int rem = r->size - alloc_size;
265         if (rem >= 0)
266         {
267             if (rem >= MALLOC_MINCHUNK)
268             {
269                 /* Find a chunk that much larger than required size, break
270                 * it into two chunks and return the second one */
271                 r->size = rem;
272                 r = (chunk *)((char *)r + rem);
273                 r->size = alloc_size;
274             }

line 272, it is dangerous to cast 'r' to 'char *', plus 'rem', then
cast back to 'chunk *'. What if the given 'rem' is not a word-aligned
number? It can cause unaligned access exception.  (This does happen in
my application.)

So, does nano-malloc be designed for specific target with unaligned
memory access instructions only(eg. ARM)?


Thanks all.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]