diff options
author | Heejin Ahn <aheejin@gmail.com> | 2024-09-13 23:20:44 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-13 23:20:44 -0700 |
commit | 20645572e435021c15838cc4ef1cb6b4a50d2e6f (patch) | |
tree | 183be1764b7603319fd701b6bf43d825529e934b | |
parent | 22aeec31b9833df4428f70cb11f789ad203178d8 (diff) | |
download | llvm-20645572e435021c15838cc4ef1cb6b4a50d2e6f.zip llvm-20645572e435021c15838cc4ef1cb6b4a50d2e6f.tar.gz llvm-20645572e435021c15838cc4ef1cb6b4a50d2e6f.tar.bz2 |
[WebAssembly] Add more EH assembly test cases (#108654)
This adds assembly tests for a catch-less `try` and a `try` with a
multivalue return.
-rw-r--r-- | llvm/test/MC/WebAssembly/eh-assembly.s | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/llvm/test/MC/WebAssembly/eh-assembly.s b/llvm/test/MC/WebAssembly/eh-assembly.s index 8c4ae3b..cd33d19 100644 --- a/llvm/test/MC/WebAssembly/eh-assembly.s +++ b/llvm/test/MC/WebAssembly/eh-assembly.s @@ -37,6 +37,21 @@ eh_legacy_test: catch __cpp_exception end_try drop + + # try-catch with a mulvivalue return + try () -> (i32, f32) + i32.const 0 + f32.const 0.0 + catch __cpp_exception + f32.const 1.0 + end_try + drop + drop + + # Catch-less try + try + call foo + end_try end_function # CHECK-LABEL: eh_legacy_test: @@ -66,4 +81,18 @@ eh_legacy_test: # CHECK-NEXT: catch __cpp_exception # CHECK-NEXT: end_try # CHECK-NEXT: drop + +# CHECK: try () -> (i32, f32) +# CHECK-NEXT: i32.const 0 +# CHECK-NEXT: f32.const 0x0p0 +# CHECK-NEXT: catch __cpp_exception +# CHECK-NEXT: f32.const 0x1p0 +# CHECK-NEXT: end_try +# CHECK-NEXT: drop +# CHECK-NEXT: drop + +# CHECK: try +# CHECK-NEXT: call foo +# CHECK-NEXT: end_try # CHECK-NEXT: end_function + |