rewrite forced-unwind-terminate-pof to rmake

This commit is contained in:
Oneirical 2024-06-18 16:43:52 -04:00
parent d1e8c6bc7e
commit e7ea063622
4 changed files with 16 additions and 11 deletions

View File

@ -51,7 +51,6 @@ run-make/extern-multiple-copies/Makefile
run-make/extern-multiple-copies2/Makefile run-make/extern-multiple-copies2/Makefile
run-make/extra-filename-with-temp-outputs/Makefile run-make/extra-filename-with-temp-outputs/Makefile
run-make/fmt-write-bloat/Makefile run-make/fmt-write-bloat/Makefile
run-make/forced-unwind-terminate-pof/Makefile
run-make/foreign-double-unwind/Makefile run-make/foreign-double-unwind/Makefile
run-make/foreign-exceptions/Makefile run-make/foreign-exceptions/Makefile
run-make/foreign-rust-exceptions/Makefile run-make/foreign-rust-exceptions/Makefile

View File

@ -1,9 +0,0 @@
# ignore-cross-compile
# only-linux
include ../tools.mk
all: foo
$(call RUN,foo) | $(CGREP) -v "cannot unwind"
foo: foo.rs
$(RUSTC) $<

View File

@ -0,0 +1,16 @@
// During a forced unwind, crossing the non-Plain Old Frame
// would define the forced unwind as undefined behaviour, and
// immediately abort the unwinding process. This test checks
// that the forced unwinding takes precedence.
// See https://github.com/rust-lang/rust/issues/101469
//@ ignore-cross-compile
//@ ignore-windows
//Reason: pthread (POSIX threads) is not available on Windows
use run_make_support::{run, rustc};
fn main() {
rustc().input("foo.rs").run();
run("foo").assert_stdout_not_contains("cannot unwind");
}

View File

@ -15,7 +15,6 @@ fn main() {
.input("bar.rs") .input("bar.rs")
.extern_("foo1", rust_lib_name("foo-a")) .extern_("foo1", rust_lib_name("foo-a"))
.extern_("foo2", rust_lib_name("foo-b")) .extern_("foo2", rust_lib_name("foo-b"))
.print("link-args")
.run(); .run();
run("bar"); run("bar");
} }