diff options
Diffstat (limited to 'src/wasm/wasm-binary.cpp')
-rw-r--r-- | src/wasm/wasm-binary.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/wasm/wasm-binary.cpp b/src/wasm/wasm-binary.cpp index 60a4bad77..9cd7e79a7 100644 --- a/src/wasm/wasm-binary.cpp +++ b/src/wasm/wasm-binary.cpp @@ -6712,10 +6712,13 @@ bool WasmBinaryBuilder::maybeVisitRefCast(Expression*& out, uint32_t code) { auto* ref = popNonVoidExpression(); out = Builder(wasm).makeRefCast(ref, rtt); return true; - } else if (code == BinaryConsts::RefCastStatic) { + } else if (code == BinaryConsts::RefCastStatic || + code == BinaryConsts::RefCastNopStatic) { auto intendedType = getIndexedHeapType(); auto* ref = popNonVoidExpression(); - out = Builder(wasm).makeRefCast(ref, intendedType); + auto safety = + code == BinaryConsts::RefCastNopStatic ? RefCast::Unsafe : RefCast::Safe; + out = Builder(wasm).makeRefCast(ref, intendedType, safety); return true; } return false; |