summaryrefslogtreecommitdiff
path: root/src/ir/global-utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/ir/global-utils.h')
-rw-r--r--src/ir/global-utils.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/ir/global-utils.h b/src/ir/global-utils.h
index e096aec8c..b575d6952 100644
--- a/src/ir/global-utils.h
+++ b/src/ir/global-utils.h
@@ -54,6 +54,15 @@ getGlobalInitializedToImport(Module& wasm, Name module, Name base) {
}
inline bool canInitializeGlobal(const Expression* curr) {
+ if (auto* tuple = curr->dynCast<TupleMake>()) {
+ for (auto* op : tuple->operands) {
+ if (!op->is<Const>() && !op->is<RefNull>() &&
+ !op->is<RefFunc>() & !op->is<GlobalGet>()) {
+ return false;
+ }
+ }
+ return true;
+ }
return curr->is<Const>() || curr->is<RefNull>() || curr->is<RefFunc>() ||
curr->is<GlobalGet>();
}