diff options
Diffstat (limited to 'src/wasm-validator.h')
-rw-r--r-- | src/wasm-validator.h | 14 |
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"); + } } } |