rust/tests/codegen-units/partitioning/extern-generic.rs

36 lines
1 KiB
Rust

//@ incremental
//@ compile-flags: -Zprint-mono-items=lazy -Copt-level=0
#![crate_type = "lib"]
//@ aux-build:cgu_generic_function.rs
extern crate cgu_generic_function;
// This test checks that, in an unoptimized build, a generic function and its callees are only
// instantiated once in this crate.
//~ MONO_ITEM fn user @@ extern_generic[External]
pub fn user() {
let _ = cgu_generic_function::foo("abc");
}
pub mod mod1 {
use cgu_generic_function;
//~ MONO_ITEM fn mod1::user @@ extern_generic-mod1[External]
pub fn user() {
let _ = cgu_generic_function::foo("abc");
}
pub mod mod1 {
use cgu_generic_function;
//~ MONO_ITEM fn mod1::mod1::user @@ extern_generic-mod1-mod1[External]
pub fn user() {
let _ = cgu_generic_function::foo("abc");
}
}
}
//~ MONO_ITEM fn cgu_generic_function::foo::<&str> @@ cgu_generic_function-in-extern_generic.volatile[External]
//~ MONO_ITEM fn cgu_generic_function::bar::<&str> @@ cgu_generic_function-in-extern_generic.volatile[External]