mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-10-31 13:04:42 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			29 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
| //
 | |
| //@ no-prefer-dynamic
 | |
| // NOTE: We always compile this test with -Copt-level=0 because higher opt-levels
 | |
| //       prevent drop-glue from participating in share-generics.
 | |
| //@ incremental
 | |
| //@ compile-flags:-Zprint-mono-items=eager -Zshare-generics=yes -Copt-level=0
 | |
| 
 | |
| #![crate_type="rlib"]
 | |
| 
 | |
| //@ aux-build:shared_generics_aux.rs
 | |
| extern crate shared_generics_aux;
 | |
| 
 | |
| //~ MONO_ITEM fn foo
 | |
| pub fn foo() {
 | |
| 
 | |
|     //~ MONO_ITEM fn shared_generics_aux::generic_fn::<u16> @@ shared_generics_aux-in-shared_generics.volatile[External]
 | |
|     let _ = shared_generics_aux::generic_fn(0u16, 1u16);
 | |
| 
 | |
|     // This should not generate a monomorphization because it's already
 | |
|     // available in `shared_generics_aux`.
 | |
|     let _ = shared_generics_aux::generic_fn(0.0f32, 3.0f32);
 | |
| 
 | |
|     // The following line will drop an instance of `Foo`, generating a call to
 | |
|     // Foo's drop-glue function. However, share-generics should take care of
 | |
|     // reusing the drop-glue from the upstream crate, so we do not expect a
 | |
|     // mono item for the drop-glue
 | |
|     let _ = shared_generics_aux::Foo(1);
 | |
| }
 | 
