diff options
Diffstat (limited to 'src/passes/RemoveUnusedModuleElements.cpp')
-rw-r--r-- | src/passes/RemoveUnusedModuleElements.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/passes/RemoveUnusedModuleElements.cpp b/src/passes/RemoveUnusedModuleElements.cpp index 6cbb001b1..05e80af0d 100644 --- a/src/passes/RemoveUnusedModuleElements.cpp +++ b/src/passes/RemoveUnusedModuleElements.cpp @@ -162,7 +162,13 @@ struct RemoveUnusedModuleElements : public Pass { std::vector<ModuleElement> roots; // Module start is a root. if (module->start.is()) { - roots.emplace_back(ModuleElementKind::Function, module->start); + auto startFunction = module->getFunction(module->start); + // Can be skipped if the start function is empty. + if (startFunction->body->is<Nop>()) { + module->start.clear(); + } else { + roots.emplace_back(ModuleElementKind::Function, module->start); + } } // Exports are roots. bool exportsMemory = false; |