Fixed a problem in the JIT memory allocator where

allocations of executable memory would not be padded
to account for the size of the allocation header.
This resulted in undersized allocations, meaning that
when the allocation was written to later the next
allocation's header would be corrupted.

llvm-svn: 161984
This commit is contained in:
Sean Callanan 2012-08-15 20:53:52 +00:00
parent 7513042c0c
commit de18bba4c8

View File

@ -461,6 +461,9 @@ namespace {
/// allocateCodeSection - Allocate memory for a code section.
uint8_t *allocateCodeSection(uintptr_t Size, unsigned Alignment,
unsigned SectionID) {
// Grow the required block size to account for the block header
Size += sizeof(*CurBlock);
// FIXME: Alignement handling.
FreeRangeHeader* candidateBlock = FreeMemoryList;
FreeRangeHeader* head = FreeMemoryList;