mirror of
https://github.com/rust-lang/rust.git
synced 2025-10-04 03:07:25 +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.
55 lines
970 B
Rust
55 lines
970 B
Rust
//@ compile-flags:-Clink-dead-code
|
|
|
|
#![deny(dead_code)]
|
|
#![crate_type = "lib"]
|
|
|
|
static STATIC1: i64 = {
|
|
const STATIC1_CONST1: i64 = 2;
|
|
1 + CONST1 as i64 + STATIC1_CONST1
|
|
};
|
|
|
|
const CONST1: i64 = {
|
|
const CONST1_1: i64 = {
|
|
const CONST1_1_1: i64 = 2;
|
|
CONST1_1_1 + 1
|
|
};
|
|
1 + CONST1_1 as i64
|
|
};
|
|
|
|
fn foo() {
|
|
let _ = {
|
|
const CONST2: i64 = 0;
|
|
static STATIC2: i64 = CONST2;
|
|
|
|
let x = {
|
|
const CONST2: i64 = 1;
|
|
static STATIC2: i64 = CONST2;
|
|
STATIC2
|
|
};
|
|
|
|
x + STATIC2
|
|
};
|
|
|
|
let _ = {
|
|
const CONST2: i64 = 0;
|
|
static STATIC2: i64 = CONST2;
|
|
STATIC2
|
|
};
|
|
}
|
|
|
|
//~ MONO_ITEM fn start
|
|
#[no_mangle]
|
|
pub fn start(_: isize, _: *const *const u8) -> isize {
|
|
foo();
|
|
let _ = STATIC1;
|
|
|
|
0
|
|
}
|
|
|
|
//~ MONO_ITEM static STATIC1
|
|
|
|
//~ MONO_ITEM fn foo
|
|
//~ MONO_ITEM static foo::STATIC2
|
|
//~ MONO_ITEM static foo::STATIC2
|
|
//~ MONO_ITEM static foo::STATIC2
|