summaryrefslogtreecommitdiff
path: root/src/passes/RemoveUnusedModuleElements.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/passes/RemoveUnusedModuleElements.cpp')
-rw-r--r--src/passes/RemoveUnusedModuleElements.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/passes/RemoveUnusedModuleElements.cpp b/src/passes/RemoveUnusedModuleElements.cpp
index d4c6d5a5d..806545adf 100644
--- a/src/passes/RemoveUnusedModuleElements.cpp
+++ b/src/passes/RemoveUnusedModuleElements.cpp
@@ -116,6 +116,18 @@ struct ReachabilityAnalyzer : public PostWalker<ReachabilityAnalyzer> {
usesMemory = true;
}
}
+ void visitThrow(Throw* curr) {
+ if (reachable.count(ModuleElement(ModuleElementKind::Event, curr->event)) ==
+ 0) {
+ queue.emplace_back(ModuleElementKind::Event, curr->event);
+ }
+ }
+ void visitBrOnExn(BrOnExn* curr) {
+ if (reachable.count(ModuleElement(ModuleElementKind::Event, curr->event)) ==
+ 0) {
+ queue.emplace_back(ModuleElementKind::Event, curr->event);
+ }
+ }
};
// Finds function type usage