diff options
Diffstat (limited to 'src/passes/RemoveUnusedModuleElements.cpp')
-rw-r--r-- | src/passes/RemoveUnusedModuleElements.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/passes/RemoveUnusedModuleElements.cpp b/src/passes/RemoveUnusedModuleElements.cpp index 436e01885..8f8fc24a3 100644 --- a/src/passes/RemoveUnusedModuleElements.cpp +++ b/src/passes/RemoveUnusedModuleElements.cpp @@ -60,23 +60,23 @@ struct ReachabilityAnalyzer : public PostWalker<ReachabilityAnalyzer> { // main loop while (queue.size()) { - auto& curr = queue.back(); + auto curr = queue.back(); queue.pop_back(); - if (reachable.count(curr) == 0) { - reachable.insert(curr); - if (curr.first == ModuleElementKind::Function) { + if (reachable.emplace(curr).second) { + auto& [kind, value] = curr; + if (kind == ModuleElementKind::Function) { // if not an import, walk it - auto* func = module->getFunction(curr.second); + auto* func = module->getFunction(value); if (!func->imported()) { walk(func->body); } - } else if (curr.first == ModuleElementKind::Global) { + } else if (kind == ModuleElementKind::Global) { // if not imported, it has an init expression we need to walk - auto* global = module->getGlobal(curr.second); + auto* global = module->getGlobal(value); if (!global->imported()) { walk(global->init); } - } else if (curr.first == ModuleElementKind::Table) { + } else if (kind == ModuleElementKind::Table) { ModuleUtils::iterTableSegments( *module, curr.second, [&](ElementSegment* segment) { walk(segment->offset); |