diff options
| author | Gary Guo <gary@garyguo.net> | 2022-10-05 23:58:35 +0100 |
|---|---|---|
| committer | Gary Guo <gary@garyguo.net> | 2022-10-23 20:30:16 +0100 |
| commit | daf3063056d6c3dbd402d5b940f0b28aac0e1dff (patch) | |
| tree | 2c496549274f966e5d058ba3b46cca21b7e3b433 | |
| parent | 86c65d2c1ce5aba2c1c74298c3e42696cff1d41a (diff) | |
| download | rust-daf3063056d6c3dbd402d5b940f0b28aac0e1dff.tar.gz rust-daf3063056d6c3dbd402d5b940f0b28aac0e1dff.zip | |
Add test case for foreign Rust exceptions
3 files changed, 25 insertions, 0 deletions
diff --git a/src/test/run-make-fulldeps/foreign-rust-exceptions/Makefile b/src/test/run-make-fulldeps/foreign-rust-exceptions/Makefile new file mode 100644 index 00000000000..24d9742aef0 --- /dev/null +++ b/src/test/run-make-fulldeps/foreign-rust-exceptions/Makefile @@ -0,0 +1,6 @@ +include ../tools.mk + +all: + $(RUSTC) bar.rs --crate-type=cdylib + $(RUSTC) foo.rs + $(call RUN,foo) 2>&1 | $(CGREP) "Rust cannot catch foreign exceptions" diff --git a/src/test/run-make-fulldeps/foreign-rust-exceptions/bar.rs b/src/test/run-make-fulldeps/foreign-rust-exceptions/bar.rs new file mode 100644 index 00000000000..5f9efe32360 --- /dev/null +++ b/src/test/run-make-fulldeps/foreign-rust-exceptions/bar.rs @@ -0,0 +1,7 @@ +#![crate_type = "cdylib"] +#![feature(c_unwind)] + +#[no_mangle] +extern "C-unwind" fn panic() { + panic!(); +} diff --git a/src/test/run-make-fulldeps/foreign-rust-exceptions/foo.rs b/src/test/run-make-fulldeps/foreign-rust-exceptions/foo.rs new file mode 100644 index 00000000000..d6a6d94a194 --- /dev/null +++ b/src/test/run-make-fulldeps/foreign-rust-exceptions/foo.rs @@ -0,0 +1,12 @@ +#![feature(c_unwind)] + +#[link(name = "bar")] +extern "C-unwind" { + fn panic(); +} + +fn main() { + let _ = std::panic::catch_unwind(|| { + unsafe { panic() }; + }); +} |
