diff options
author | Heejin Ahn <aheejin@gmail.com> | 2021-03-01 10:30:00 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-01 10:30:00 +0900 |
commit | 7d453930f1b211baf324b1c010924d3709ff12ba (patch) | |
tree | 43773af4e683faecd10273b78a853b46bb6376a6 /test/exception-handling.wast.from-wast | |
parent | 0eb513d730b122f38bd6c66280c8acfe183b9b35 (diff) | |
download | binaryen-7d453930f1b211baf324b1c010924d3709ff12ba.tar.gz binaryen-7d453930f1b211baf324b1c010924d3709ff12ba.tar.bz2 binaryen-7d453930f1b211baf324b1c010924d3709ff12ba.zip |
Allow empty body within catch block (#3630)
Previously we assumed catch body's size should be at least 3: `catch`
keyword, event name, and body. But catch's body can be empty when the
event's type is none. This PR fixes the bug and allows empty catch
bodies to be parsed correctly.
Fixes #3629.
Diffstat (limited to 'test/exception-handling.wast.from-wast')
-rw-r--r-- | test/exception-handling.wast.from-wast | 43 |
1 files changed, 26 insertions, 17 deletions
diff --git a/test/exception-handling.wast.from-wast b/test/exception-handling.wast.from-wast index c397edcd8..6d997c521 100644 --- a/test/exception-handling.wast.from-wast +++ b/test/exception-handling.wast.from-wast @@ -6,6 +6,7 @@ (event $e-i32 (attr 0) (param i32)) (event $e-i64 (attr 0) (param i64)) (event $e-i32-i64 (attr 0) (param i32 i64)) + (event $e-empty (attr 0) (param)) (func $foo (nop) ) @@ -226,6 +227,14 @@ ) (delegate 0) ) + (try $try17 + (do + (nop) + ) + (catch $e-empty + (nop) + ) + ) ) (func $rethrow-test (try $l0 @@ -242,8 +251,8 @@ (rethrow $l0) ) ) - (block $l018 - (try $l017 + (block $l019 + (try $l018 (do (call $foo) ) @@ -251,14 +260,14 @@ (drop (pop i32) ) - (rethrow $l017) + (rethrow $l018) ) (catch_all - (br $l018) + (br $l019) ) ) ) - (try $l019 + (try $l020 (do (call $foo) ) @@ -271,20 +280,20 @@ (drop (pop i32) ) - (rethrow $l019) + (rethrow $l020) ) (catch_all - (rethrow $l019) + (rethrow $l020) ) ) ) ) - (try $l020 + (try $l021 (do (call $foo) ) (catch_all - (try $try21 + (try $try22 (do (call $foo) ) @@ -293,25 +302,25 @@ (pop i32) ) (block $b0 - (rethrow $l020) + (rethrow $l021) ) ) (catch_all (block $b1 - (rethrow $l020) + (rethrow $l021) ) ) ) ) ) - (try $l022 + (try $l023 (do (call $foo) ) (catch_all - (try $try23 + (try $try24 (do - (rethrow $l022) + (rethrow $l023) ) (catch_all (nop) @@ -319,14 +328,14 @@ ) ) ) - (try $l024 + (try $l025 (do (call $foo) ) (catch_all - (try $try25 + (try $try26 (do - (rethrow $l024) + (rethrow $l025) ) (catch_all (nop) |