summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lld/ELF/SymbolTable.cpp4
-rw-r--r--lld/ELF/Symbols.cpp15
-rw-r--r--lld/ELF/Symbols.h1
3 files changed, 2 insertions, 18 deletions
diff --git a/lld/ELF/SymbolTable.cpp b/lld/ELF/SymbolTable.cpp
index 6b61213896f..a82046ba008 100644
--- a/lld/ELF/SymbolTable.cpp
+++ b/lld/ELF/SymbolTable.cpp
@@ -192,8 +192,8 @@ void SymbolTable::applySymbolWrap() {
}
// Replace __real_sym with sym and sym with __wrap_sym.
- W.Real->copyFrom(W.Sym);
- W.Sym->copyFrom(W.Wrap);
+ memcpy(W.Real, W.Sym, sizeof(SymbolUnion));
+ memcpy(W.Sym, W.Wrap, sizeof(SymbolUnion));
// We now have two copies of __wrap_sym. Drop one.
W.Wrap->IsUsedInRegularObj = false;
diff --git a/lld/ELF/Symbols.cpp b/lld/ELF/Symbols.cpp
index 1b696eac578..5d496a6aeb4 100644
--- a/lld/ELF/Symbols.cpp
+++ b/lld/ELF/Symbols.cpp
@@ -134,21 +134,6 @@ InputFile *Symbol::getFile() const {
return File;
}
-// Overwrites all attributes with Other's so that this symbol becomes
-// an alias to Other. This is useful for handling some options such as
-// --wrap.
-void Symbol::copyFrom(Symbol *Other) {
- Symbol Sym = *this;
- memcpy(this, Other, sizeof(SymbolUnion));
-
- VersionId = Sym.VersionId;
- IsUsedInRegularObj = Sym.IsUsedInRegularObj;
- ExportDynamic = Sym.ExportDynamic;
- CanInline = Sym.CanInline;
- Traced = Sym.Traced;
- InVersionScript = Sym.InVersionScript;
-}
-
uint64_t Symbol::getVA(int64_t Addend) const {
uint64_t OutVA = getSymVA(*this, Addend);
return OutVA + Addend;
diff --git a/lld/ELF/Symbols.h b/lld/ELF/Symbols.h
index 99fc61b963a..7a3ed4ffcaa 100644
--- a/lld/ELF/Symbols.h
+++ b/lld/ELF/Symbols.h
@@ -108,7 +108,6 @@ public:
StringRef getName() const { return Name; }
uint8_t getVisibility() const { return StOther & 0x3; }
void parseSymbolVersion();
- void copyFrom(Symbol *Other);
bool isInGot() const { return GotIndex != -1U; }
bool isInPlt() const { return PltIndex != -1U; }
OpenPOWER on IntegriCloud