summaryrefslogtreecommitdiffstats
path: root/lld/lib/ReaderWriter/ELF/ARM
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2015-04-14 05:21:26 +0000
committerRui Ueyama <ruiu@google.com>2015-04-14 05:21:26 +0000
commitf505ccf451a693eb8261a3a2f5c35f12a4360ce7 (patch)
tree42fdd2b01f96e36b6dfc44912f9e65b2d92e0198 /lld/lib/ReaderWriter/ELF/ARM
parentda3a9a1b0b3580ac49154b5dd6245bc8498ed0ab (diff)
downloadbcm5719-llvm-f505ccf451a693eb8261a3a2f5c35f12a4360ce7.tar.gz
bcm5719-llvm-f505ccf451a693eb8261a3a2f5c35f12a4360ce7.zip
ELF: Make ARMELFMappingAtom a non-template class.
llvm-svn: 234860
Diffstat (limited to 'lld/lib/ReaderWriter/ELF/ARM')
-rw-r--r--lld/lib/ReaderWriter/ELF/ARM/ARMELFFile.h31
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;
OpenPOWER on IntegriCloud