diff options
Diffstat (limited to 'src/test/ui/asm/x86_64/may_unwind.rs')
-rw-r--r-- | src/test/ui/asm/x86_64/may_unwind.rs | 38 |
1 files changed, 0 insertions, 38 deletions
diff --git a/src/test/ui/asm/x86_64/may_unwind.rs b/src/test/ui/asm/x86_64/may_unwind.rs deleted file mode 100644 index c11f0938d..000000000 --- a/src/test/ui/asm/x86_64/may_unwind.rs +++ /dev/null @@ -1,38 +0,0 @@ -// only-x86_64 -// run-pass -// needs-asm-support -// needs-unwind - -#![feature(asm_unwind)] - -use std::arch::asm; -use std::panic::{catch_unwind, resume_unwind, AssertUnwindSafe}; - -struct Foo<'a>(&'a mut bool); - -impl Drop for Foo<'_> { - fn drop(&mut self) { - *self.0 = false; - } -} - -extern "C" fn panicky() { - resume_unwind(Box::new(())); -} - -fn main() { - let flag = &mut true; - catch_unwind(AssertUnwindSafe(|| { - let _foo = Foo(flag); - unsafe { - asm!( - "call {}", - sym panicky, - clobber_abi("C"), - options(may_unwind) - ); - } - })) - .expect_err("expected a panic"); - assert_eq!(*flag, false); -} |