summaryrefslogtreecommitdiff
path: root/src/wasm-validator.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/wasm-validator.h')
-rw-r--r--src/wasm-validator.h14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/wasm-validator.h b/src/wasm-validator.h
index ca89270e9..5844dafcd 100644
--- a/src/wasm-validator.h
+++ b/src/wasm-validator.h
@@ -89,16 +89,16 @@ public:
static void visitPreLoop(WasmValidator* self, Expression** currp) {
auto* curr = (*currp)->cast<Loop>();
- if (curr->in.is()) self->breakTargets[curr->in].push_back(curr);
- if (curr->out.is()) self->breakTargets[curr->out].push_back(curr);
+ if (curr->name.is()) self->breakTargets[curr->name].push_back(curr);
}
void visitLoop(Loop *curr) {
- if (curr->in.is()) {
- breakTargets[curr->in].pop_back();
- }
- if (curr->out.is()) {
- breakTargets[curr->out].pop_back();
+ if (curr->name.is()) {
+ breakTargets[curr->name].pop_back();
+ if (breakInfos.count(curr) > 0) {
+ auto& info = breakInfos[curr];
+ shouldBeEqual(info.arity, Index(0), curr, "breaks to a loop cannot pass a value");
+ }
}
}