Add initial LTO support.
llvm-svn: 260726
diff --git a/lld/ELF/Symbols.cpp b/lld/ELF/Symbols.cpp
index 8b1c70c..39abc47 100644
--- a/lld/ELF/Symbols.cpp
+++ b/lld/ELF/Symbols.cpp
@@ -69,6 +69,8 @@
case LazyKind:
assert(isUsedInRegularObj() && "Lazy symbol reached writer");
return 0;
+ case DefinedBitcodeKind:
+ llvm_unreachable("Should have been replaced");
}
llvm_unreachable("Invalid symbol kind");
}
@@ -159,6 +161,13 @@
bool IsTls, bool IsFunction)
: SymbolBody(K, Name, IsWeak, Visibility, IsTls, IsFunction) {}
+DefinedBitcode::DefinedBitcode(StringRef Name)
+ : Defined(DefinedBitcodeKind, Name, false, STV_DEFAULT, false, false) {}
+
+bool DefinedBitcode::classof(const SymbolBody *S) {
+ return S->kind() == DefinedBitcodeKind;
+}
+
Undefined::Undefined(SymbolBody::Kind K, StringRef N, bool IsWeak,
uint8_t Visibility, bool IsTls)
: SymbolBody(K, N, IsWeak, Visibility, IsTls, /*IsFunction*/ false),