diff options
Diffstat (limited to 'src/ir/global-utils.h')
-rw-r--r-- | src/ir/global-utils.h | 9 |
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>(); } |