summaryrefslogtreecommitdiffstats
path: root/lld/wasm/Writer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lld/wasm/Writer.cpp')
-rw-r--r--lld/wasm/Writer.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/lld/wasm/Writer.cpp b/lld/wasm/Writer.cpp
index 0aa1180cb2b..43a8c8de637 100644
--- a/lld/wasm/Writer.cpp
+++ b/lld/wasm/Writer.cpp
@@ -701,6 +701,9 @@ void Writer::calculateInitFunctions() {
const WasmLinkingData &L = File->getWasmObj()->linkingData();
for (const WasmInitFunc &F : L.InitFunctions) {
FunctionSymbol *Sym = File->getFunctionSymbol(F.Symbol);
+ // comdat exclusions can cause init functions be discarded.
+ if (Sym->isDiscarded())
+ continue;
assert(Sym->isLive());
if (*Sym->Signature != WasmSignature{{}, {}})
error("invalid signature for init func: " + toString(*Sym));
OpenPOWER on IntegriCloud