mirror of
https://github.com/rust-lang/rust.git
synced 2025-06-04 19:29:07 +00:00

Previously `-Zprint-mono-items` would override the mono item collection strategy. When debugging one doesn't want to change the behaviour, so this was counter productive. Additionally, the produced behaviour was artificial and might never arise without using the option in the first place (`-Zprint-mono-items=eager` without `-Clink-dead-code`). Finally, the option was incorrectly marked as `UNTRACKED`. Resolve those issues, by turning `-Zprint-mono-items` into a boolean flag that prints results of mono item collection without changing the behaviour of mono item collection. For codegen-units test incorporate `-Zprint-mono-items` flag directly into compiletest tool. Test changes are mechanical. `-Zprint-mono-items=lazy` was removed without additional changes, and `-Zprint-mono-items=eager` was turned into `-Clink-dead-code`. Linking dead code disables internalization, so tests have been updated accordingly.
72 lines
2.3 KiB
Rust
72 lines
2.3 KiB
Rust
//@ incremental
|
|
//@ compile-flags: -Copt-level=0
|
|
|
|
#![crate_type = "lib"]
|
|
|
|
// This test ensures that regular fn items and statics are assigned to the CGU of their module.
|
|
|
|
//~ MONO_ITEM fn foo @@ regular_modules[External]
|
|
pub fn foo() {}
|
|
|
|
//~ MONO_ITEM fn bar @@ regular_modules[External]
|
|
pub fn bar() {}
|
|
|
|
//~ MONO_ITEM static BAZ @@ regular_modules[External]
|
|
pub static BAZ: u64 = 0;
|
|
|
|
pub mod mod1 {
|
|
|
|
//~ MONO_ITEM fn mod1::foo @@ regular_modules-mod1[External]
|
|
pub fn foo() {}
|
|
//~ MONO_ITEM fn mod1::bar @@ regular_modules-mod1[External]
|
|
pub fn bar() {}
|
|
//~ MONO_ITEM static mod1::BAZ @@ regular_modules-mod1[External]
|
|
pub static BAZ: u64 = 0;
|
|
|
|
pub mod mod1 {
|
|
//~ MONO_ITEM fn mod1::mod1::foo @@ regular_modules-mod1-mod1[External]
|
|
pub fn foo() {}
|
|
//~ MONO_ITEM fn mod1::mod1::bar @@ regular_modules-mod1-mod1[External]
|
|
pub fn bar() {}
|
|
//~ MONO_ITEM static mod1::mod1::BAZ @@ regular_modules-mod1-mod1[External]
|
|
pub static BAZ: u64 = 0;
|
|
}
|
|
|
|
pub mod mod2 {
|
|
//~ MONO_ITEM fn mod1::mod2::foo @@ regular_modules-mod1-mod2[External]
|
|
pub fn foo() {}
|
|
//~ MONO_ITEM fn mod1::mod2::bar @@ regular_modules-mod1-mod2[External]
|
|
pub fn bar() {}
|
|
//~ MONO_ITEM static mod1::mod2::BAZ @@ regular_modules-mod1-mod2[External]
|
|
pub static BAZ: u64 = 0;
|
|
}
|
|
}
|
|
|
|
pub mod mod2 {
|
|
|
|
//~ MONO_ITEM fn mod2::foo @@ regular_modules-mod2[External]
|
|
pub fn foo() {}
|
|
//~ MONO_ITEM fn mod2::bar @@ regular_modules-mod2[External]
|
|
pub fn bar() {}
|
|
//~ MONO_ITEM static mod2::BAZ @@ regular_modules-mod2[External]
|
|
pub static BAZ: u64 = 0;
|
|
|
|
pub mod mod1 {
|
|
//~ MONO_ITEM fn mod2::mod1::foo @@ regular_modules-mod2-mod1[External]
|
|
pub fn foo() {}
|
|
//~ MONO_ITEM fn mod2::mod1::bar @@ regular_modules-mod2-mod1[External]
|
|
pub fn bar() {}
|
|
//~ MONO_ITEM static mod2::mod1::BAZ @@ regular_modules-mod2-mod1[External]
|
|
pub static BAZ: u64 = 0;
|
|
}
|
|
|
|
pub mod mod2 {
|
|
//~ MONO_ITEM fn mod2::mod2::foo @@ regular_modules-mod2-mod2[External]
|
|
pub fn foo() {}
|
|
//~ MONO_ITEM fn mod2::mod2::bar @@ regular_modules-mod2-mod2[External]
|
|
pub fn bar() {}
|
|
//~ MONO_ITEM static mod2::mod2::BAZ @@ regular_modules-mod2-mod2[External]
|
|
pub static BAZ: u64 = 0;
|
|
}
|
|
}
|