Make OutputSectionBase a class instead of class template.
The disadvantage is that we use uint64_t instad of uint32_t for some
value in 32 bit files. The advantage is a substantially simpler code,
faster builds and less code duplication.
llvm-svn: 286414
diff --git a/lld/ELF/LinkerScript.h b/lld/ELF/LinkerScript.h
index a3f0c2d..1840978 100644
--- a/lld/ELF/LinkerScript.h
+++ b/lld/ELF/LinkerScript.h
@@ -32,7 +32,7 @@
class SymbolBody;
template <class ELFT> class InputSectionBase;
template <class ELFT> class InputSection;
-template <class ELFT> class OutputSectionBase;
+class OutputSectionBase;
template <class ELFT> class OutputSectionFactory;
class InputSectionData;
@@ -240,7 +240,7 @@
bool isDefined(StringRef S) override;
bool isAbsolute(StringRef S) override;
- std::vector<OutputSectionBase<ELFT> *> *OutputSections;
+ std::vector<OutputSectionBase *> *OutputSections;
int getSectionIndex(StringRef Name);
@@ -262,13 +262,13 @@
uintX_t Dot;
uintX_t LMAOffset = 0;
- OutputSectionBase<ELFT> *CurOutSec = nullptr;
+ OutputSectionBase *CurOutSec = nullptr;
uintX_t ThreadBssOffset = 0;
- void switchTo(OutputSectionBase<ELFT> *Sec);
+ void switchTo(OutputSectionBase *Sec);
void flush();
void output(InputSection<ELFT> *Sec);
void process(BaseCommand &Base);
- llvm::DenseSet<OutputSectionBase<ELFT> *> AlreadyOutputOS;
+ llvm::DenseSet<OutputSectionBase *> AlreadyOutputOS;
llvm::DenseSet<InputSectionData *> AlreadyOutputIS;
};