summaryrefslogtreecommitdiff
path: root/src/parser/wat-parser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/parser/wat-parser.cpp')
-rw-r--r--src/parser/wat-parser.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/parser/wat-parser.cpp b/src/parser/wat-parser.cpp
index f247dbf48..50a47d7b6 100644
--- a/src/parser/wat-parser.cpp
+++ b/src/parser/wat-parser.cpp
@@ -177,7 +177,10 @@ Result<> parseModule(Module& wasm, std::string_view input) {
for (Index i = 0; i < decls.funcDefs.size(); ++i) {
ctx.index = i;
- CHECK_ERR(ctx.visitFunctionStart(wasm.functions[i].get()));
+ auto* f = wasm.functions[i].get();
+ if (!f->imported()) {
+ CHECK_ERR(ctx.visitFunctionStart(f));
+ }
WithPosition with(ctx, decls.funcDefs[i].pos);
if (auto parsed = func(ctx)) {
CHECK_ERR(parsed);
@@ -186,6 +189,9 @@ Result<> parseModule(Module& wasm, std::string_view input) {
assert(im);
CHECK_ERR(im);
}
+ if (!f->imported()) {
+ CHECK_ERR(ctx.irBuilder.visitEnd());
+ }
}
// Parse exports.