X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=blobdiff_plain;f=include%2Fllvm%2FExecutionEngine%2FRuntimeDyld.h;h=ac0151aa7ec1ee506312df304616bf0545958685;hp=7b3bd939b90d8c246e889669d2f19b6615cb967e;hb=25103832b272eaa009fd56d3fc9eb98ebb7c2f1a;hpb=c1896335867238b01457db7e5a2a1a66d81a39d9;ds=sidebyside diff --git a/include/llvm/ExecutionEngine/RuntimeDyld.h b/include/llvm/ExecutionEngine/RuntimeDyld.h index 7b3bd939b90..ac0151aa7ec 100644 --- a/include/llvm/ExecutionEngine/RuntimeDyld.h +++ b/include/llvm/ExecutionEngine/RuntimeDyld.h @@ -62,7 +62,7 @@ public: unsigned EndIdx) : RTDyld(RTDyld), BeginIdx(BeginIdx), EndIdx(EndIdx) { } - virtual ~LoadedObjectInfo() {} + virtual ~LoadedObjectInfo() = default; virtual object::OwningBinary getObjectForDebug(const object::ObjectFile &Obj) const = 0; @@ -76,6 +76,15 @@ public: unsigned BeginIdx, EndIdx; }; + template struct LoadedObjectInfoHelper : LoadedObjectInfo { + LoadedObjectInfoHelper(RuntimeDyldImpl &RTDyld, unsigned BeginIdx, + unsigned EndIdx) + : LoadedObjectInfo(RTDyld, BeginIdx, EndIdx) {} + llvm::LoadedObjectInfo *clone() const override { + return new Derived(static_cast(*this)); + } + }; + /// \brief Memory Management. class MemoryManager { public: