aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/llvm/System/Memory.h8
-rw-r--r--lib/System/Unix/Memory.inc2
2 files changed, 9 insertions, 1 deletions
diff --git a/include/llvm/System/Memory.h b/include/llvm/System/Memory.h
index 8c1c37a..d692b95 100644
--- a/include/llvm/System/Memory.h
+++ b/include/llvm/System/Memory.h
@@ -57,6 +57,14 @@ namespace sys {
const MemoryBlock *NearBlock,
std::string *ErrMsg = 0);
+ /// This method allocates a block of Read/Write memory. This memory
+ /// needs to have executable permissions set before it can be used
+ /// to execute JIT'ed code.
+ ///
+ /// On success, this returns a non-null memory block, otherwise it returns
+ /// a null memory block and fills in *ErrMsg.
+ ///
+ /// @brief Allocate Read/Write/Execute memory.
static MemoryBlock AllocateRW(unsigned NumBytes,
const MemoryBlock *NearBlock,
std::string *ErrMsg = 0);
diff --git a/lib/System/Unix/Memory.inc b/lib/System/Unix/Memory.inc
index 1649887..e0bf8d8 100644
--- a/lib/System/Unix/Memory.inc
+++ b/lib/System/Unix/Memory.inc
@@ -103,7 +103,7 @@ llvm::sys::Memory::AllocateRW(unsigned NumBytes, const MemoryBlock* NearBlock,
flags, fd, 0);
if (pa == MAP_FAILED) {
if (NearBlock) //Try again without a near hint
- return AllocateRWX(NumBytes, 0);
+ return AllocateRW(NumBytes, 0);
MakeErrMsg(ErrMsg, "Can't allocate RWX Memory");
return MemoryBlock();