summaryrefslogtreecommitdiff
path: root/include/llvm/ExecutionEngine/RuntimeDyld.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm/ExecutionEngine/RuntimeDyld.h')
-rw-r--r--include/llvm/ExecutionEngine/RuntimeDyld.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/llvm/ExecutionEngine/RuntimeDyld.h b/include/llvm/ExecutionEngine/RuntimeDyld.h
index 4222d5335b..c6c126c6e2 100644
--- a/include/llvm/ExecutionEngine/RuntimeDyld.h
+++ b/include/llvm/ExecutionEngine/RuntimeDyld.h
@@ -66,6 +66,11 @@ public:
///
/// Returns true if an error occurred, false otherwise.
virtual bool applyPermissions(std::string *ErrMsg = 0) = 0;
+
+ /// Register the EH frames with the runtime so that c++ exceptions work. The
+ /// default implementation does nothing. Look at SectionMemoryManager for one
+ /// that uses __register_frame.
+ virtual void registerEHFrames(StringRef SectionData);
};
class RuntimeDyld {
@@ -109,6 +114,8 @@ public:
void mapSectionAddress(const void *LocalAddress, uint64_t TargetAddress);
StringRef getErrorString();
+
+ StringRef getEHFrameSection();
};
} // end namespace llvm