diff options
author | Alon Zakai <alonzakai@gmail.com> | 2016-08-23 11:33:44 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2016-09-07 09:55:06 -0700 |
commit | eb1def34a4183c5a4227686fee5209e2419ecce7 (patch) | |
tree | 345d35dffc40e81d5f60eacc019e95f2849dcb5e /src/asm2wasm.h | |
parent | c05ac6a217cb7657c7aa4e248bcc76d47e65983d (diff) | |
download | binaryen-eb1def34a4183c5a4227686fee5209e2419ecce7.tar.gz binaryen-eb1def34a4183c5a4227686fee5209e2419ecce7.tar.bz2 binaryen-eb1def34a4183c5a4227686fee5209e2419ecce7.zip |
add some finalize() calls for ifs
Diffstat (limited to 'src/asm2wasm.h')
-rw-r--r-- | src/asm2wasm.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/asm2wasm.h b/src/asm2wasm.h index d11fb3cfb..10d065400 100644 --- a/src/asm2wasm.h +++ b/src/asm2wasm.h @@ -1481,6 +1481,7 @@ Function* Asm2WasmBuilder::processFunction(Ref ast) { If *condition = allocator.alloc<If>(); condition->condition = builder.makeUnary(EqZInt32, process(ast[1])); condition->ifTrue = breakOut; + condition->finalize(); auto body = allocator.alloc<Block>(); body->list.push_back(condition); body->list.push_back(process(ast[2])); @@ -1581,6 +1582,7 @@ Function* Asm2WasmBuilder::processFunction(Ref ast) { If *condition = allocator.alloc<If>(); condition->condition = builder.makeUnary(EqZInt32, process(fcond)); condition->ifTrue = breakOut; + condition->finalize(); auto body = allocator.alloc<Block>(); body->list.push_back(condition); body->list.push_back(process(fbody)); @@ -1610,7 +1612,7 @@ Function* Asm2WasmBuilder::processFunction(Ref ast) { ret->condition = process(ast[1]); ret->ifTrue = process(ast[2]); ret->ifFalse = process(ast[3]); - ret->type = ret->ifTrue->type; + ret->finalize(); return ret; } else if (what == SEQ) { // Some (x, y) patterns can be optimized, like bitcasts, |