34 lines
1.1 KiB
Rust
34 lines
1.1 KiB
Rust
// This is a non-regression test for issue #81408 involving an lld bug and ThinLTO, on windows.
|
|
// MSVC's link.exe doesn't need any workarounds in rustc, but lld does, so we'll check that the
|
|
// binary runs successfully instead of using a codegen test.
|
|
|
|
//@ only-x86_64-pc-windows-msvc
|
|
//@ needs-rust-lld
|
|
//@ ignore-cross-compile: the built binary is executed
|
|
|
|
use run_make_support::{run, rustc};
|
|
|
|
fn test_with_linker(linker: &str) {
|
|
rustc().input("issue_81408.rs").crate_name("issue_81408").crate_type("lib").opt().run();
|
|
rustc()
|
|
.input("main.rs")
|
|
.crate_type("bin")
|
|
.arg("-Clto=thin")
|
|
.opt()
|
|
.arg(&format!("-Clinker={linker}"))
|
|
.extern_("issue_81408", "libissue_81408.rlib")
|
|
.run();
|
|
|
|
// To make possible failures clearer, print an intro that will only be shown if the test does
|
|
// fail when running the binary.
|
|
eprint!("Running binary linked with {linker}... ");
|
|
run("main");
|
|
eprintln!("ok");
|
|
}
|
|
|
|
fn main() {
|
|
// We want the reproducer to work when linked with both linkers.
|
|
test_with_linker("link");
|
|
test_with_linker("rust-lld");
|
|
}
|