[lld] r234860 - ELF: Make ARMELFMappingAtom a non-template class.
Rui Ueyama
ruiu at google.com
Mon Apr 13 22:21:26 PDT 2015
Author: ruiu
Date: Tue Apr 14 00:21:26 2015
New Revision: 234860
URL: http://llvm.org/viewvc/llvm-project?rev=234860&view=rev
Log:
ELF: Make ARMELFMappingAtom a non-template class.
Modified:
lld/trunk/lib/ReaderWriter/ELF/ARM/ARMELFFile.h
Modified: lld/trunk/lib/ReaderWriter/ELF/ARM/ARMELFFile.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/ARM/ARMELFFile.h?rev=234860&r1=234859&r2=234860&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/ARM/ARMELFFile.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/ARM/ARMELFFile.h Tue Apr 14 00:21:26 2015
@@ -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;
More information about the llvm-commits
mailing list