about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2013-04-01 13:55:49 -0700
committerPatrick Walton <pcwalton@mimiga.net>2013-04-19 11:53:32 -0700
commitaf42d37547c15732a7c9d358c0a14967aef75e96 (patch)
treeac3c6c4a5c6920c60100e5d0966295dde58b7ed9 /src/rustllvm/RustWrapper.cpp
parentf903ae9e72ec02539373da22fd4d025422af7554 (diff)
downloadrust-af42d37547c15732a7c9d358c0a14967aef75e96.tar.gz
rust-af42d37547c15732a7c9d358c0a14967aef75e96.zip
rustllvm: Fix RustWrapper.cpp
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
-rw-r--r--src/rustllvm/RustWrapper.cpp23
1 files changed, 16 insertions, 7 deletions
diff --git a/src/rustllvm/RustWrapper.cpp b/src/rustllvm/RustWrapper.cpp
index 1612fec4029..7c22cc6cc25 100644
--- a/src/rustllvm/RustWrapper.cpp
+++ b/src/rustllvm/RustWrapper.cpp
@@ -15,6 +15,8 @@
 //
 //===----------------------------------------------------------------------===
 
+#include "llvm/IR/InlineAsm.h"
+#include "llvm/IR/LLVMContext.h"
 #include "llvm/Linker.h"
 #include "llvm/PassManager.h"
 #include "llvm/IR/InlineAsm.h"
@@ -152,7 +154,9 @@ public:
                                        unsigned SectionID);
 
   virtual uint8_t *allocateDataSection(uintptr_t Size, unsigned Alignment,
-                                       unsigned SectionID);
+                                       unsigned SectionID, bool isReadOnly);
+
+  virtual bool applyPermissions(std::string *Str);
 
   virtual void *getPointerToNamedFunction(const std::string &Name,
                                           bool AbortOnFailure = true);
@@ -240,8 +244,9 @@ bool RustMCJITMemoryManager::loadCrate(const char* file, std::string* err) {
 }
 
 uint8_t *RustMCJITMemoryManager::allocateDataSection(uintptr_t Size,
-                                                    unsigned Alignment,
-                                                    unsigned SectionID) {
+                                                     unsigned Alignment,
+                                                     unsigned SectionID,
+                                                     bool isReadOnly) {
   if (!Alignment)
     Alignment = 16;
   uint8_t *Addr = (uint8_t*)calloc((Size + Alignment - 1)/Alignment, Alignment);
@@ -249,9 +254,14 @@ uint8_t *RustMCJITMemoryManager::allocateDataSection(uintptr_t Size,
   return Addr;
 }
 
+bool RustMCJITMemoryManager::applyPermissions(std::string *Str) {
+    // Empty.
+    return true;
+}
+
 uint8_t *RustMCJITMemoryManager::allocateCodeSection(uintptr_t Size,
-                                                    unsigned Alignment,
-                                                    unsigned SectionID) {
+                                                     unsigned Alignment,
+                                                     unsigned SectionID) {
   if (!Alignment)
     Alignment = 16;
   unsigned NeedAllocate = Alignment * ((Size + Alignment - 1)/Alignment + 1);
@@ -485,13 +495,12 @@ LLVMRustWriteOutputFile(LLVMPassManagerRef PMR,
 }
 
 extern "C" LLVMModuleRef LLVMRustParseAssemblyFile(const char *Filename) {
-
   SMDiagnostic d;
   Module *m = ParseAssemblyFile(Filename, d, getGlobalContext());
   if (m) {
     return wrap(m);
   } else {
-    LLVMRustError = d.getMessage().data();
+    LLVMRustError = d.getMessage().str().c_str();
     return NULL;
   }
 }