diff options
| author | Rui Ueyama <ruiu@google.com> | 2015-04-14 05:21:26 +0000 |
|---|---|---|
| committer | Rui Ueyama <ruiu@google.com> | 2015-04-14 05:21:26 +0000 |
| commit | f505ccf451a693eb8261a3a2f5c35f12a4360ce7 (patch) | |
| tree | 42fdd2b01f96e36b6dfc44912f9e65b2d92e0198 | |
| parent | da3a9a1b0b3580ac49154b5dd6245bc8498ed0ab (diff) | |
| download | bcm5719-llvm-f505ccf451a693eb8261a3a2f5c35f12a4360ce7.tar.gz bcm5719-llvm-f505ccf451a693eb8261a3a2f5c35f12a4360ce7.zip | |
ELF: Make ARMELFMappingAtom a non-template class.
llvm-svn: 234860
| -rw-r--r-- | lld/lib/ReaderWriter/ELF/ARM/ARMELFFile.h | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/lld/lib/ReaderWriter/ELF/ARM/ARMELFFile.h b/lld/lib/ReaderWriter/ELF/ARM/ARMELFFile.h index b91cebebcf0..76d8477850a 100644 --- a/lld/lib/ReaderWriter/ELF/ARM/ARMELFFile.h +++ b/lld/lib/ReaderWriter/ELF/ARM/ARMELFFile.h @@ -17,14 +17,16 @@ namespace elf { class ARMLinkingContext; -template <DefinedAtom::CodeModel Model> class ARMELFMappingAtom : public ELFDefinedAtom<ELF32LE> { public: template <typename... T> - ARMELFMappingAtom(T &&... args) - : ELFDefinedAtom<ELF32LE>(std::forward<T>(args)...) {} + ARMELFMappingAtom(DefinedAtom::CodeModel model, T &&... args) + : ELFDefinedAtom<ELF32LE>(std::forward<T>(args)...), _model(model) {} + + DefinedAtom::CodeModel codeModel() const override { return _model; } - DefinedAtom::CodeModel codeModel() const override { return Model; } +private: + DefinedAtom::CodeModel _model; }; class ARMELFDefinedAtom : public ELFDefinedAtom<ELF32LE> { @@ -86,17 +88,20 @@ private: if (symName.size() >= 2 && symName[0] == '$') { switch (symName[1]) { case 'a': - return new (_readerStorage) ARMELFMappingAtom<DefinedAtom::codeARM_a>( - *this, symName, sectionName, sym, sectionHdr, contentData, - referenceStart, referenceEnd, referenceList); + return new (_readerStorage) + ARMELFMappingAtom(DefinedAtom::codeARM_a, *this, symName, + sectionName, sym, sectionHdr, contentData, + referenceStart, referenceEnd, referenceList); case 'd': - return new (_readerStorage) ARMELFMappingAtom<DefinedAtom::codeARM_d>( - *this, symName, sectionName, sym, sectionHdr, contentData, - referenceStart, referenceEnd, referenceList); + return new (_readerStorage) + ARMELFMappingAtom(DefinedAtom::codeARM_d, *this, symName, + sectionName, sym, sectionHdr, contentData, + referenceStart, referenceEnd, referenceList); case 't': - return new (_readerStorage) ARMELFMappingAtom<DefinedAtom::codeARM_t>( - *this, symName, sectionName, sym, sectionHdr, contentData, - referenceStart, referenceEnd, referenceList); + return new (_readerStorage) + ARMELFMappingAtom(DefinedAtom::codeARM_t, *this, symName, + sectionName, sym, sectionHdr, contentData, + referenceStart, referenceEnd, referenceList); default: // Fall through and create regular defined atom. break; |

