summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2016-11-09 23:37:40 +0000
committerRui Ueyama <ruiu@google.com>2016-11-09 23:37:40 +0000
commit1bdaf3e30c222000eb18be744dc73c13f75f435a (patch)
tree7f8dfc6e2e38adaaf1249c5b4d457d18dc3d636a
parent38a666d6e545537674d8cb58bacea0f66b0d624a (diff)
downloadbcm5719-llvm-1bdaf3e30c222000eb18be744dc73c13f75f435a.tar.gz
bcm5719-llvm-1bdaf3e30c222000eb18be744dc73c13f75f435a.zip
Remove an overloaded function to simplify.
This version of addRegular is almost identical to the other except it lacked "size" parameter. llvm-svn: 286416
-rw-r--r--lld/ELF/InputFiles.cpp12
-rw-r--r--lld/ELF/LinkerScript.cpp4
-rw-r--r--lld/ELF/SymbolTable.cpp14
-rw-r--r--lld/ELF/SymbolTable.h6
4 files changed, 14 insertions, 22 deletions
diff --git a/lld/ELF/InputFiles.cpp b/lld/ELF/InputFiles.cpp
index 75f683f518b..340c98e5792 100644
--- a/lld/ELF/InputFiles.cpp
+++ b/lld/ELF/InputFiles.cpp
@@ -795,12 +795,12 @@ template <class ELFT> void BinaryFile::parse() {
make<InputSection<ELFT>>(SHF_ALLOC, SHT_PROGBITS, 8, Data, ".data");
Sections.push_back(Section);
- elf::Symtab<ELFT>::X->addRegular(StartName, STV_DEFAULT, Section, STB_GLOBAL,
- STT_OBJECT, 0);
- elf::Symtab<ELFT>::X->addRegular(EndName, STV_DEFAULT, Section, STB_GLOBAL,
- STT_OBJECT, Data.size());
- elf::Symtab<ELFT>::X->addRegular(SizeName, STV_DEFAULT, nullptr, STB_GLOBAL,
- STT_OBJECT, Data.size());
+ elf::Symtab<ELFT>::X->addRegular(StartName, STV_DEFAULT, STT_OBJECT, 0, 0,
+ STB_GLOBAL, Section);
+ elf::Symtab<ELFT>::X->addRegular(EndName, STV_DEFAULT, STT_OBJECT,
+ Data.size(), 0, STB_GLOBAL, Section);
+ elf::Symtab<ELFT>::X->addRegular(SizeName, STV_DEFAULT, STT_OBJECT,
+ Data.size(), 0, STB_GLOBAL, nullptr);
}
static bool isBitcode(MemoryBufferRef MB) {
diff --git a/lld/ELF/LinkerScript.cpp b/lld/ELF/LinkerScript.cpp
index e911fa5996d..3e6b8851e9d 100644
--- a/lld/ELF/LinkerScript.cpp
+++ b/lld/ELF/LinkerScript.cpp
@@ -64,8 +64,8 @@ ScriptConfiguration *elf::ScriptConfig;
template <class ELFT> static void addRegular(SymbolAssignment *Cmd) {
uint8_t Visibility = Cmd->Hidden ? STV_HIDDEN : STV_DEFAULT;
- Symbol *Sym = Symtab<ELFT>::X->addRegular(Cmd->Name, Visibility, nullptr,
- STB_GLOBAL, STT_NOTYPE, 0);
+ Symbol *Sym = Symtab<ELFT>::X->addRegular(Cmd->Name, Visibility, STT_NOTYPE,
+ 0, 0, STB_GLOBAL, nullptr);
Cmd->Sym = Sym->body();
// If we have no SECTIONS then we don't have '.' and don't call
diff --git a/lld/ELF/SymbolTable.cpp b/lld/ELF/SymbolTable.cpp
index 6d55bbb1b28..d929a8fd014 100644
--- a/lld/ELF/SymbolTable.cpp
+++ b/lld/ELF/SymbolTable.cpp
@@ -128,8 +128,9 @@ template <class ELFT> void SymbolTable<ELFT>::addCombinedLtoObject() {
template <class ELFT>
DefinedRegular<ELFT> *SymbolTable<ELFT>::addAbsolute(StringRef Name,
uint8_t Visibility) {
- return cast<DefinedRegular<ELFT>>(
- addRegular(Name, Visibility, nullptr, STB_GLOBAL, STT_NOTYPE, 0)->body());
+ Symbol *Sym =
+ addRegular(Name, Visibility, STT_NOTYPE, 0, 0, STB_GLOBAL, nullptr);
+ return cast<DefinedRegular<ELFT>>(Sym->body());
}
// Add Name as an "ignored" symbol. An ignored symbol is a regular
@@ -157,6 +158,7 @@ template <class ELFT> void SymbolTable<ELFT>::wrap(StringRef Name) {
Symbol *Sym = B->symbol();
Symbol *Real = addUndefined(Saver.save("__real_" + Name));
Symbol *Wrap = addUndefined(Saver.save("__wrap_" + Name));
+
// We rename symbols by replacing the old symbol's SymbolBody with the new
// symbol's SymbolBody. This causes all SymbolBody pointers referring to the
// old symbol to instead refer to the new symbol.
@@ -421,14 +423,6 @@ Symbol *SymbolTable<ELFT>::addRegular(StringRef Name, uint8_t StOther,
}
template <typename ELFT>
-Symbol *SymbolTable<ELFT>::addRegular(StringRef Name, uint8_t StOther,
- InputSectionBase<ELFT> *Section,
- uint8_t Binding, uint8_t Type,
- uintX_t Value) {
- return addRegular(Name, StOther, Type, Value, 0, Binding, Section);
-}
-
-template <typename ELFT>
Symbol *SymbolTable<ELFT>::addSynthetic(StringRef N, OutputSectionBase *Section,
uintX_t Value, uint8_t StOther) {
Symbol *S;
diff --git a/lld/ELF/SymbolTable.h b/lld/ELF/SymbolTable.h
index 7683706e2b0..08e1b4e290f 100644
--- a/lld/ELF/SymbolTable.h
+++ b/lld/ELF/SymbolTable.h
@@ -61,14 +61,12 @@ public:
Symbol *addRegular(StringRef Name, uint8_t StOther, uint8_t Type,
uintX_t Value, uintX_t Size, uint8_t Binding,
InputSectionBase<ELFT> *Section);
-
Symbol *addRegular(StringRef Name, const Elf_Sym &Sym,
InputSectionBase<ELFT> *Section);
- Symbol *addRegular(StringRef Name, uint8_t StOther,
- InputSectionBase<ELFT> *Section, uint8_t Binding,
- uint8_t Type, uintX_t Value);
+
Symbol *addSynthetic(StringRef N, OutputSectionBase *Section, uintX_t Value,
uint8_t StOther);
+
void addShared(SharedFile<ELFT> *F, StringRef Name, const Elf_Sym &Sym,
const typename ELFT::Verdef *Verdef);
OpenPOWER on IntegriCloud