summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/wasm/wasm-validator.cpp2
-rw-r--r--test/exception-handling.wast6
-rw-r--r--test/exception-handling.wast.from-wast8
-rw-r--r--test/exception-handling.wast.fromBinary6
-rw-r--r--test/exception-handling.wast.fromBinary.noDebugInfo6
5 files changed, 14 insertions, 14 deletions
diff --git a/src/wasm/wasm-validator.cpp b/src/wasm/wasm-validator.cpp
index bc51d8b63..10310f8c0 100644
--- a/src/wasm/wasm-validator.cpp
+++ b/src/wasm/wasm-validator.cpp
@@ -2175,7 +2175,7 @@ void FunctionValidator::visitTry(Try* curr) {
} else {
if (shouldBeTrue(pops.size() == 1, curr, "")) {
auto* pop = *pops.begin();
- if (!shouldBeSubType(pop->type, tag->sig.params, curr, "")) {
+ if (!shouldBeSubType(tag->sig.params, pop->type, curr, "")) {
getStream()
<< "catch's tag (" << tagName
<< ")'s pop doesn't have the same type as the tag's params";
diff --git a/test/exception-handling.wast b/test/exception-handling.wast
index 642856f03..93dbe41ba 100644
--- a/test/exception-handling.wast
+++ b/test/exception-handling.wast
@@ -2,7 +2,7 @@
(tag $e-i32 (param i32))
(tag $e-i64 (param i64))
(tag $e-i32-i64 (param i32 i64))
- (tag $e-anyref (param anyref))
+ (tag $e-funcref (param funcref))
(tag $e-empty)
(func $foo)
@@ -330,9 +330,9 @@
(try
(do)
- (catch $e-anyref
+ (catch $e-funcref
(drop
- (pop funcref) ;; pop can be subtype
+ (pop anyref) ;; pop can be supertype
)
)
)
diff --git a/test/exception-handling.wast.from-wast b/test/exception-handling.wast.from-wast
index 2427a1ee1..be14cda0f 100644
--- a/test/exception-handling.wast.from-wast
+++ b/test/exception-handling.wast.from-wast
@@ -3,11 +3,11 @@
(type $i32_=>_none (func (param i32)))
(type $i64_=>_none (func (param i64)))
(type $i32_i64_=>_none (func (param i32 i64)))
- (type $anyref_=>_none (func (param anyref)))
+ (type $funcref_=>_none (func (param funcref)))
(tag $e-i32 (param i32))
(tag $e-i64 (param i64))
(tag $e-i32-i64 (param i32 i64))
- (tag $e-anyref (param anyref))
+ (tag $e-funcref (param funcref))
(tag $e-empty (param))
(func $foo
(nop)
@@ -372,9 +372,9 @@
(do
(nop)
)
- (catch $e-anyref
+ (catch $e-funcref
(drop
- (pop funcref)
+ (pop anyref)
)
)
)
diff --git a/test/exception-handling.wast.fromBinary b/test/exception-handling.wast.fromBinary
index f88e54507..5642a4f2d 100644
--- a/test/exception-handling.wast.fromBinary
+++ b/test/exception-handling.wast.fromBinary
@@ -3,11 +3,11 @@
(type $i32_=>_none (func (param i32)))
(type $i64_=>_none (func (param i64)))
(type $i32_i64_=>_none (func (param i32 i64)))
- (type $anyref_=>_none (func (param anyref)))
+ (type $funcref_=>_none (func (param funcref)))
(tag $tag$0 (param i32))
(tag $tag$1 (param i64))
(tag $tag$2 (param i32 i64))
- (tag $tag$3 (param anyref))
+ (tag $tag$3 (param funcref))
(tag $tag$4 (param))
(func $foo
(nop)
@@ -403,7 +403,7 @@
)
(catch $tag$3
(drop
- (pop anyref)
+ (pop funcref)
)
)
)
diff --git a/test/exception-handling.wast.fromBinary.noDebugInfo b/test/exception-handling.wast.fromBinary.noDebugInfo
index c65a216c3..08d31f361 100644
--- a/test/exception-handling.wast.fromBinary.noDebugInfo
+++ b/test/exception-handling.wast.fromBinary.noDebugInfo
@@ -3,11 +3,11 @@
(type $i32_=>_none (func (param i32)))
(type $i64_=>_none (func (param i64)))
(type $i32_i64_=>_none (func (param i32 i64)))
- (type $anyref_=>_none (func (param anyref)))
+ (type $funcref_=>_none (func (param funcref)))
(tag $tag$0 (param i32))
(tag $tag$1 (param i64))
(tag $tag$2 (param i32 i64))
- (tag $tag$3 (param anyref))
+ (tag $tag$3 (param funcref))
(tag $tag$4 (param))
(func $0
(nop)
@@ -403,7 +403,7 @@
)
(catch $tag$3
(drop
- (pop anyref)
+ (pop funcref)
)
)
)