diff options
Diffstat (limited to 'tests/codegen/wasm_exceptions.rs')
| -rw-r--r-- | tests/codegen/wasm_exceptions.rs | 59 | 
1 files changed, 0 insertions, 59 deletions
| diff --git a/tests/codegen/wasm_exceptions.rs b/tests/codegen/wasm_exceptions.rs deleted file mode 100644 index 07b8ae6e9d7..00000000000 --- a/tests/codegen/wasm_exceptions.rs +++ /dev/null @@ -1,59 +0,0 @@ -//@ only-wasm32 -//@ compile-flags: -C panic=unwind -Z emscripten-wasm-eh - -#![crate_type = "lib"] -#![feature(core_intrinsics)] - -extern "C-unwind" { - fn may_panic(); -} - -extern "C" { - fn log_number(number: usize); -} - -struct LogOnDrop; - -impl Drop for LogOnDrop { - fn drop(&mut self) { - unsafe { - log_number(0); - } - } -} - -// CHECK-LABEL: @test_cleanup() {{.*}} @__gxx_wasm_personality_v0 -#[no_mangle] -pub fn test_cleanup() { - let _log_on_drop = LogOnDrop; - unsafe { - may_panic(); - } - - // CHECK-NOT: call - // CHECK: invoke void @may_panic() - // CHECK: %cleanuppad = cleanuppad within none [] -} - -// CHECK-LABEL: @test_rtry() {{.*}} @__gxx_wasm_personality_v0 -#[no_mangle] -pub fn test_rtry() { - unsafe { - core::intrinsics::catch_unwind( - |_| { - may_panic(); - }, - core::ptr::null_mut(), - |data, exception| { - log_number(data as usize); - log_number(exception as usize); - }, - ); - } - - // CHECK-NOT: call - // CHECK: invoke void @may_panic() - // CHECK: {{.*}} = catchswitch within none [label {{.*}}] unwind to caller - // CHECK: {{.*}} = catchpad within {{.*}} [ptr null] - // CHECK: catchret -} | 
