Does nano-malloc support target without unaligned load/store instructions?
Pei-Shiang Hung
pshung807@gmail.com
Fri Jan 22 09:14:00 GMT 2016
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.
More information about the Newlib
mailing list