summaryrefslogtreecommitdiff
path: root/src/passes/RemoveImports.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/passes/RemoveImports.cpp')
-rw-r--r--src/passes/RemoveImports.cpp8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/passes/RemoveImports.cpp b/src/passes/RemoveImports.cpp
index be41717f4..2a1c119fd 100644
--- a/src/passes/RemoveImports.cpp
+++ b/src/passes/RemoveImports.cpp
@@ -22,6 +22,7 @@
// look at all the rest of the code).
//
+#include "ir/element-utils.h"
#include "ir/module-utils.h"
#include "pass.h"
#include "wasm.h"
@@ -49,11 +50,8 @@ struct RemoveImports : public WalkerPass<PostWalker<RemoveImports>> {
*curr, [&](Function* func) { names.push_back(func->name); });
// Do not remove names referenced in a table
std::set<Name> indirectNames;
- for (auto& segment : curr->elementSegments) {
- for (auto& name : segment->data) {
- indirectNames.insert(name);
- }
- }
+ ElementUtils::iterAllElementFunctionNames(
+ curr, [&](Name& name) { indirectNames.insert(name); });
for (auto& name : names) {
if (indirectNames.find(name) == indirectNames.end()) {
curr->removeFunction(name);