Delete DefinedAbsolute.
There are 3 symbol types that a .bc can provide during lto: defined,
undefined, common.
Defined and undefined symbols have already been refactored. I was
working on common and noticed that absolute symbols would become an
oddity: They would be the only symbol type present in a .o but not in
a.bc.
Looking a bit more, other than the special section number they were only
used for special rules for computing values. In that way they are
similar to TLS, and we don't have a DefinedTLS.
This patch deletes it. With it we have a reasonable rule of the thumb
for having a symbol kind: It exists if it has special resolution
semantics.
llvm-svn: 256383
diff --git a/lld/ELF/Symbols.cpp b/lld/ELF/Symbols.cpp
index 5c65952..c3515d1 100644
--- a/lld/ELF/Symbols.cpp
+++ b/lld/ELF/Symbols.cpp
@@ -113,9 +113,9 @@
}
template <class ELFT> static void doInitSymbols() {
- DefinedAbsolute<ELFT>::End.setBinding(STB_GLOBAL);
- DefinedAbsolute<ELFT>::IgnoreUndef.setBinding(STB_WEAK);
- DefinedAbsolute<ELFT>::IgnoreUndef.setVisibility(STV_HIDDEN);
+ DefinedRegular<ELFT>::End.setBinding(STB_GLOBAL);
+ DefinedRegular<ELFT>::IgnoreUndef.setBinding(STB_WEAK);
+ DefinedRegular<ELFT>::IgnoreUndef.setVisibility(STV_HIDDEN);
}
void lld::elf2::initSymbols() {