Reapply part of r237975, "Fix Clang -Wmissing-override warning", except for DIContext...
[oota-llvm.git] / include / llvm / ExecutionEngine / RuntimeDyld.h
index 7b3bd93..ac0151a 100644 (file)
@@ -62,7 +62,7 @@ public:
                      unsigned EndIdx)
       : RTDyld(RTDyld), BeginIdx(BeginIdx), EndIdx(EndIdx) { }
 
                      unsigned EndIdx)
       : RTDyld(RTDyld), BeginIdx(BeginIdx), EndIdx(EndIdx) { }
 
-    virtual ~LoadedObjectInfo() {}
+    virtual ~LoadedObjectInfo() = default;
 
     virtual object::OwningBinary<object::ObjectFile>
     getObjectForDebug(const object::ObjectFile &Obj) const = 0;
 
     virtual object::OwningBinary<object::ObjectFile>
     getObjectForDebug(const object::ObjectFile &Obj) const = 0;
@@ -76,6 +76,15 @@ public:
     unsigned BeginIdx, EndIdx;
   };
 
     unsigned BeginIdx, EndIdx;
   };
 
+  template <typename Derived> struct LoadedObjectInfoHelper : LoadedObjectInfo {
+    LoadedObjectInfoHelper(RuntimeDyldImpl &RTDyld, unsigned BeginIdx,
+                           unsigned EndIdx)
+        : LoadedObjectInfo(RTDyld, BeginIdx, EndIdx) {}
+    llvm::LoadedObjectInfo *clone() const override {
+      return new Derived(static_cast<const Derived &>(*this));
+    }
+  };
+
   /// \brief Memory Management.
   class MemoryManager {
   public:
   /// \brief Memory Management.
   class MemoryManager {
   public: