mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-11-04 06:56:14 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
// We specify incremental here because we want to test the partitioning for incremental compilation
 | 
						|
//@ incremental
 | 
						|
//@ compile-flags:-Zprint-mono-items=lazy
 | 
						|
//@ compile-flags:-Zinline-in-all-cgus
 | 
						|
 | 
						|
#![crate_type = "lib"]
 | 
						|
 | 
						|
//@ aux-build:cgu_explicit_inlining.rs
 | 
						|
extern crate cgu_explicit_inlining;
 | 
						|
 | 
						|
// This test makes sure that items inlined from external crates are privately
 | 
						|
// instantiated in every codegen unit they are used in.
 | 
						|
 | 
						|
//~ MONO_ITEM fn cgu_explicit_inlining::inlined @@ inlining_from_extern_crate[Internal] inlining_from_extern_crate-mod1[Internal]
 | 
						|
//~ MONO_ITEM fn cgu_explicit_inlining::always_inlined @@ inlining_from_extern_crate[Internal] inlining_from_extern_crate-mod2[Internal]
 | 
						|
 | 
						|
//~ MONO_ITEM fn user @@ inlining_from_extern_crate[External]
 | 
						|
pub fn user() {
 | 
						|
    cgu_explicit_inlining::inlined();
 | 
						|
    cgu_explicit_inlining::always_inlined();
 | 
						|
 | 
						|
    // does not generate a monomorphization in this crate
 | 
						|
    cgu_explicit_inlining::never_inlined();
 | 
						|
}
 | 
						|
 | 
						|
pub mod mod1 {
 | 
						|
    use cgu_explicit_inlining;
 | 
						|
 | 
						|
    //~ MONO_ITEM fn mod1::user @@ inlining_from_extern_crate-mod1[External]
 | 
						|
    pub fn user() {
 | 
						|
        cgu_explicit_inlining::inlined();
 | 
						|
 | 
						|
        // does not generate a monomorphization in this crate
 | 
						|
        cgu_explicit_inlining::never_inlined();
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
pub mod mod2 {
 | 
						|
    use cgu_explicit_inlining;
 | 
						|
 | 
						|
    //~ MONO_ITEM fn mod2::user @@ inlining_from_extern_crate-mod2[External]
 | 
						|
    pub fn user() {
 | 
						|
        cgu_explicit_inlining::always_inlined();
 | 
						|
 | 
						|
        // does not generate a monomorphization in this crate
 | 
						|
        cgu_explicit_inlining::never_inlined();
 | 
						|
    }
 | 
						|
}
 |