summaryrefslogtreecommitdiff
path: root/src/wasm/wasm-s-parser.cpp
diff options
context:
space:
mode:
authorAlon Zakai <azakai@google.com>2021-03-03 00:03:11 +0000
committerGitHub <noreply@github.com>2021-03-02 16:03:11 -0800
commit760a51bd15a51f02bc1c75087a9cd9e11b9f27bb (patch)
tree9add44367e78e9bc1eea88dbebdf212ff09fa351 /src/wasm/wasm-s-parser.cpp
parent5f88277c4bddc097d2f073e41488889f02b08103 (diff)
downloadbinaryen-760a51bd15a51f02bc1c75087a9cd9e11b9f27bb.tar.gz
binaryen-760a51bd15a51f02bc1c75087a9cd9e11b9f27bb.tar.bz2
binaryen-760a51bd15a51f02bc1c75087a9cd9e11b9f27bb.zip
[Wasm GC] ref.cast and ref.test should have zero immediates (#3641)
This updates them to be correct in the current spec and prototype v3.
Diffstat (limited to 'src/wasm/wasm-s-parser.cpp')
-rw-r--r--src/wasm/wasm-s-parser.cpp12
1 files changed, 4 insertions, 8 deletions
diff --git a/src/wasm/wasm-s-parser.cpp b/src/wasm/wasm-s-parser.cpp
index 11121ced6..0b0f3f407 100644
--- a/src/wasm/wasm-s-parser.cpp
+++ b/src/wasm/wasm-s-parser.cpp
@@ -2561,18 +2561,14 @@ Expression* SExpressionWasmBuilder::makeI31Get(Element& s, bool signed_) {
}
Expression* SExpressionWasmBuilder::makeRefTest(Element& s) {
- auto heapType = parseHeapType(*s[1]);
- auto* ref = parseExpression(*s[2]);
- auto* rtt = parseExpression(*s[3]);
- validateHeapTypeUsingChild(rtt, heapType, s);
+ auto* ref = parseExpression(*s[1]);
+ auto* rtt = parseExpression(*s[2]);
return Builder(wasm).makeRefTest(ref, rtt);
}
Expression* SExpressionWasmBuilder::makeRefCast(Element& s) {
- auto heapType = parseHeapType(*s[1]);
- auto* ref = parseExpression(*s[2]);
- auto* rtt = parseExpression(*s[3]);
- validateHeapTypeUsingChild(rtt, heapType, s);
+ auto* ref = parseExpression(*s[1]);
+ auto* rtt = parseExpression(*s[2]);
return Builder(wasm).makeRefCast(ref, rtt);
}