summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/WinCOFFObjectWriter.cpp
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2017-02-14 23:58:19 +0000
committerRui Ueyama <ruiu@google.com>2017-02-14 23:58:19 +0000
commitdfc8aa8e1bc93aa612c5e1509b00693d55ecd10e (patch)
tree48f13ca5f9218064d2c8aff0fc18ab9194cb793e /llvm/lib/MC/WinCOFFObjectWriter.cpp
parentba05737f1f7eb08513b0cd3a109662bf5c4d2c1f (diff)
downloadbcm5719-llvm-dfc8aa8e1bc93aa612c5e1509b00693d55ecd10e.tar.gz
bcm5719-llvm-dfc8aa8e1bc93aa612c5e1509b00693d55ecd10e.zip
Simplify WinCOFFObjectWriter by removing a template member function.
llvm-svn: 295126
Diffstat (limited to 'llvm/lib/MC/WinCOFFObjectWriter.cpp')
-rw-r--r--llvm/lib/MC/WinCOFFObjectWriter.cpp20
1 files changed, 5 insertions, 15 deletions
diff --git a/llvm/lib/MC/WinCOFFObjectWriter.cpp b/llvm/lib/MC/WinCOFFObjectWriter.cpp
index 23af66c4bb1..075e27ec617 100644
--- a/llvm/lib/MC/WinCOFFObjectWriter.cpp
+++ b/llvm/lib/MC/WinCOFFObjectWriter.cpp
@@ -161,9 +161,6 @@ public:
COFFSymbol *GetOrCreateCOFFSymbol(const MCSymbol *Symbol);
COFFSection *createSection(StringRef Name);
- template <typename object_t, typename list_t>
- object_t *createCOFFEntity(StringRef Name, list_t &List);
-
void defineSection(MCSectionCOFF const &Sec);
COFFSymbol *getLinkedSymbol(const MCSymbol &Symbol);
@@ -226,27 +223,20 @@ WinCOFFObjectWriter::WinCOFFObjectWriter(MCWinCOFFObjectTargetWriter *MOTW,
}
COFFSymbol *WinCOFFObjectWriter::createSymbol(StringRef Name) {
- return createCOFFEntity<COFFSymbol>(Name, Symbols);
+ Symbols.push_back(make_unique<COFFSymbol>(Name));
+ return Symbols.back().get();
}
COFFSymbol *WinCOFFObjectWriter::GetOrCreateCOFFSymbol(const MCSymbol *Symbol) {
COFFSymbol *&Ret = SymbolMap[Symbol];
if (!Ret)
- Ret = createCOFFEntity<COFFSymbol>(Symbol->getName(), Symbols);
+ Ret = createSymbol(Symbol->getName());
return Ret;
}
COFFSection *WinCOFFObjectWriter::createSection(StringRef Name) {
- return createCOFFEntity<COFFSection>(Name, Sections);
-}
-
-/// A template used to lookup or create a symbol/section, and initialize it if
-/// needed.
-template <typename object_t, typename list_t>
-object_t *WinCOFFObjectWriter::createCOFFEntity(StringRef Name, list_t &List) {
- List.push_back(make_unique<object_t>(Name));
-
- return List.back().get();
+ Sections.emplace_back(make_unique<COFFSection>(Name));
+ return Sections.back().get();
}
/// This function takes a section data object from the assembler
OpenPOWER on IntegriCloud