summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2015-12-06 14:17:10 -0800
committerAlon Zakai <alonzakai@gmail.com>2015-12-06 14:17:10 -0800
commit3e5ee789acecd01c092d9c834530f3ee2bf382c8 (patch)
tree79da839bf06f97be308a2ebae3c478f33206d973 /src
parent7fd4379192eb8d1296373ff454ea643f1b147fa0 (diff)
downloadbinaryen-3e5ee789acecd01c092d9c834530f3ee2bf382c8.tar.gz
binaryen-3e5ee789acecd01c092d9c834530f3ee2bf382c8.tar.bz2
binaryen-3e5ee789acecd01c092d9c834530f3ee2bf382c8.zip
handle nested blocks with returns in wasm2asm
Diffstat (limited to 'src')
-rw-r--r--src/wasm2asm.h7
1 files changed, 1 insertions, 6 deletions
diff --git a/src/wasm2asm.h b/src/wasm2asm.h
index c2e1141d1..89f33381a 100644
--- a/src/wasm2asm.h
+++ b/src/wasm2asm.h
@@ -481,12 +481,7 @@ Ref Wasm2AsmBuilder::processFunctionBody(Expression* curr, IString result) {
flattenAppend(ret, ValueBuilder::makeStatement(visit(curr->list[i], NO_RESULT)));
}
if (result != NO_RESULT) {
- ret[1]->push_back(ValueBuilder::makeStatement(
- ValueBuilder::makeAssign(
- result,
- visit(curr->list[size-1], result)
- )
- ));
+ flattenAppend(ret, visitAndAssign(curr->list[size-1], result));
}
if (curr->name.is()) {
ret = ValueBuilder::makeLabel(fromName(curr->name), ret);