[PATCH] LLD: Inherit constructors. No functionality change.

Rui Ueyama ruiu at google.com
Wed Mar 25 13:25:35 PDT 2015


Hi atanasyan,

We cannot use "using" to inherit constructors because the feature
is not supported by MSVC 2013.

REPOSITORY
  rL LLVM

http://reviews.llvm.org/D8616

Files:
  lib/ReaderWriter/ELF/ARM/ARMELFFile.h
  lib/ReaderWriter/ELF/Hexagon/HexagonELFFile.h

Index: lib/ReaderWriter/ELF/ARM/ARMELFFile.h
===================================================================
--- lib/ReaderWriter/ELF/ARM/ARMELFFile.h
+++ lib/ReaderWriter/ELF/ARM/ARMELFFile.h
@@ -22,14 +22,9 @@
   typedef llvm::object::Elf_Shdr_Impl<ELFT> Elf_Shdr;
 
 public:
-  ARMELFDefinedAtom(const ELFFile<ELFT> &file, StringRef symbolName,
-                 StringRef sectionName, const Elf_Sym *symbol,
-                 const Elf_Shdr *section, ArrayRef<uint8_t> contentData,
-                 unsigned int referenceStart, unsigned int referenceEnd,
-                 std::vector<ELFReference<ELFT> *> &referenceList)
-      : ELFDefinedAtom<ELFT>(file, symbolName, sectionName, symbol, section,
-                             contentData, referenceStart, referenceEnd,
-                             referenceList) {}
+  template<typename... T>
+  ARMELFDefinedAtom(T&&... args)
+      : ELFDefinedAtom<ELFT>(std::forward<T>(args)...) {}
 
   bool isThumbFunc(const Elf_Sym *symbol) const {
     return symbol->getType() == llvm::ELF::STT_FUNC &&
Index: lib/ReaderWriter/ELF/Hexagon/HexagonELFFile.h
===================================================================
--- lib/ReaderWriter/ELF/Hexagon/HexagonELFFile.h
+++ lib/ReaderWriter/ELF/Hexagon/HexagonELFFile.h
@@ -24,14 +24,9 @@
   typedef llvm::object::Elf_Shdr_Impl<ELFT> Elf_Shdr;
 
 public:
-  HexagonELFDefinedAtom(const HexagonELFFile<ELFT> &file, StringRef symbolName,
-                        StringRef sectionName, const Elf_Sym *symbol,
-                        const Elf_Shdr *section, ArrayRef<uint8_t> contentData,
-                        unsigned int referenceStart, unsigned int referenceEnd,
-                        std::vector<ELFReference<ELFT> *> &referenceList)
-      : ELFDefinedAtom<ELFT>(file, symbolName, sectionName, symbol, section,
-                             contentData, referenceStart, referenceEnd,
-                             referenceList) {}
+  template<typename... T>
+  HexagonELFDefinedAtom(T&&... args)
+      : ELFDefinedAtom<ELFT>(std::forward<T>(args)...) {}
 
   virtual DefinedAtom::ContentType contentType() const {
     if (this->_contentType != DefinedAtom::typeUnknown)

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D8616.22672.patch
Type: text/x-patch
Size: 2195 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150325/d439e638/attachment.bin>


More information about the llvm-commits mailing list