diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/wasm-builder.h | 1 | ||||
-rw-r--r-- | src/wasm/wasm-ir-builder.cpp | 3 |
2 files changed, 4 insertions, 0 deletions
diff --git a/src/wasm-builder.h b/src/wasm-builder.h index 4b5df766d..3096ada07 100644 --- a/src/wasm-builder.h +++ b/src/wasm-builder.h @@ -362,6 +362,7 @@ public: ret->ptr = ptr; ret->type = type; ret->memory = memory; + ret->finalize(); return ret; } Load* makeAtomicLoad( diff --git a/src/wasm/wasm-ir-builder.cpp b/src/wasm/wasm-ir-builder.cpp index f8c8cf0a0..8098856e4 100644 --- a/src/wasm/wasm-ir-builder.cpp +++ b/src/wasm/wasm-ir-builder.cpp @@ -677,6 +677,9 @@ Result<Expression*> IRBuilder::finishScope(Block* block) { } else { auto hoisted = hoistLastValue(); CHECK_ERR(hoisted); + if (!hoisted) { + return Err{"popping from empty stack"}; + } auto hoistedType = scope.exprStack.back()->type; if (hoistedType.size() != type.size()) { // We cannot propagate the hoisted value directly because it does not |