summaryrefslogtreecommitdiff
path: root/src/ir/table-utils.cpp
diff options
context:
space:
mode:
authorAbbas Mashayekh <martianboy2005@gmail.com>2021-03-24 21:43:45 +0430
committerGitHub <noreply@github.com>2021-03-24 10:13:45 -0700
commitffac06650507ac413d60d72aadc1e33fb1f91ccf (patch)
treef581d02da66df8db2a775fc731d39baf15d96c82 /src/ir/table-utils.cpp
parent683c31381f5798016f683a6b42e2a8fad0f871cb (diff)
downloadbinaryen-ffac06650507ac413d60d72aadc1e33fb1f91ccf.tar.gz
binaryen-ffac06650507ac413d60d72aadc1e33fb1f91ccf.tar.bz2
binaryen-ffac06650507ac413d60d72aadc1e33fb1f91ccf.zip
[RT] Support expressions in element segments (#3666)
This PR adds support for `ref.null t` as a valid element segment item. The abbreviated format of `(elem ... func $f $g...)` is kept in both printing and binary emitting if all items are `ref.func`s. Public APIs aren't updated in this PR.
Diffstat (limited to 'src/ir/table-utils.cpp')
-rw-r--r--src/ir/table-utils.cpp8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/ir/table-utils.cpp b/src/ir/table-utils.cpp
index 639f8fbe6..80ef885f9 100644
--- a/src/ir/table-utils.cpp
+++ b/src/ir/table-utils.cpp
@@ -15,6 +15,7 @@
*/
#include "table-utils.h"
+#include "element-utils.h"
#include "find_all.h"
#include "module-utils.h"
@@ -31,11 +32,8 @@ std::set<Name> getFunctionsNeedingElemDeclare(Module& wasm) {
// Find all the names in the tables.
std::unordered_set<Name> tableNames;
- for (auto& segment : wasm.elementSegments) {
- for (auto name : segment->data) {
- tableNames.insert(name);
- }
- }
+ ElementUtils::iterAllElementFunctionNames(
+ &wasm, [&](Name name) { tableNames.insert(name); });
// Find all the names in ref.funcs.
using Names = std::unordered_set<Name>;