Add EH support to the MCJIT.
[oota-llvm.git] / lib / ExecutionEngine / MCJIT / MCJIT.cpp
index ccaa72a6108dcb60e48a41dcb3c4a94e14d968df..38aa5474a3b06fc3a8bc3331d0711bb20cd1e64d 100644 (file)
@@ -168,15 +168,14 @@ void MCJIT::finalizeObject() {
     // If the call to Dyld.resolveRelocations() is removed from loadObject()
     // we'll need to do that here.
     loadObject(M);
-
-    // Set page permissions.
-    MemMgr->applyPermissions();
-
-    return;
+  } else {
+    // Resolve any relocations.
+    Dyld.resolveRelocations();
   }
 
-  // Resolve any relocations.
-  Dyld.resolveRelocations();
+  StringRef EHData = Dyld.getEHFrameSection();
+  if (!EHData.empty())
+    MemMgr->registerEHFrames(EHData);
 
   // Set page permissions.
   MemMgr->applyPermissions();