summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/wasm-builder.h1
-rw-r--r--src/wasm/wasm-ir-builder.cpp3
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