blob: b6a04bf877e7f69280faeebee9d45da583ac0a6d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
//@ needs-target-std
//
// Trying to access mid-level internal representation (MIR) in statics
// used to cause an internal compiler error (ICE), now handled as a proper
// error since #100211. This test checks that the correct error is printed
// during the linking process, and not the ICE.
// See https://github.com/rust-lang/rust/issues/85401
use run_make_support::{bin_name, rust_lib_name, rustc};
fn main() {
rustc()
.crate_type("rlib")
.crate_name("foo")
.arg("-Crelocation-model=pic")
.edition("2018")
.input("foo.rs")
.arg("-Zalways-encode-mir=yes")
.emit("metadata")
.output("libfoo.rmeta")
.run();
rustc()
.crate_type("rlib")
.crate_name("bar")
.arg("-Crelocation-model=pic")
.edition("2018")
.input("bar.rs")
.output(rust_lib_name("bar"))
.extern_("foo", "libfoo.rmeta")
.run();
rustc()
.crate_type("bin")
.crate_name("baz")
.arg("-Crelocation-model=pic")
.edition("2018")
.input("baz.rs")
.output(bin_name("baz"))
.extern_("bar", rust_lib_name("bar"))
.run_fail()
.assert_stderr_contains(
"crate `foo` required to be available in rlib format, but was not found in this form",
)
.assert_stdout_not_contains("internal compiler error");
}
|