on master help sign in
alloc_heap also requires the pointer alignment hack.
47cd264stepcut
rts/idris_heap.c+8−1
@@ -16,7 +16,14 @@ void alloc_heap(Heap * h, size_t heap_size)
16 }
16 }
17
17
18 h->heap = mem;
18 h->heap = mem;
19+#ifdef FORCE_ALIGNMENT
20+ if (((i_int)(h->heap)&1) == 1) {
19− h->next = h->heap;
21+ h->next = h->heap + 1;
22+ } else
23+#endif
24+ {
25+ h->next = h->heap;
26+ }
20 h->end = h->heap + heap_size;
27 h->end = h->heap + heap_size;
21
28
22 h->size = heap_size;
29 h->size = heap_size;