diff --git a/lld/wasm/Symbols.cpp b/lld/wasm/Symbols.cpp --- a/lld/wasm/Symbols.cpp +++ b/lld/wasm/Symbols.cpp @@ -137,7 +137,7 @@ void Symbol::markLive() { assert(!isDiscarded()); - if (file != NULL) + if (file != NULL && isDefined()) file->markLive(); if (auto *g = dyn_cast(this)) g->global->live = true;