mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-10-30 20:44:34 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			25 lines
		
	
	
		
			970 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			970 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| //! Regression test for <https://github.com/rust-lang/rust/issues/133606>.
 | |
| //!
 | |
| //! In rare cases, all of a function's coverage spans are discarded at a late
 | |
| //! stage during codegen. When that happens, the subsequent code needs to take
 | |
| //! special care to avoid emitting coverage metadata that would cause `llvm-cov`
 | |
| //! to fail with a fatal error.
 | |
| //!
 | |
| //! We currently don't know of a concise way to reproduce that scenario with
 | |
| //! ordinary Rust source code, so instead we set a special testing-only flag to
 | |
| //! force it to occur.
 | |
| 
 | |
| //@ edition: 2021
 | |
| //@ compile-flags: -Zcoverage-options=discard-all-spans-in-codegen
 | |
| 
 | |
| // The `llvm-cov` tool will complain if the test binary ends up having no
 | |
| // coverage metadata at all. To prevent that, we also link to instrumented
 | |
| // code in an auxiliary crate that doesn't have the special flag set.
 | |
| 
 | |
| //@ aux-build: discard_all_helper.rs
 | |
| extern crate discard_all_helper;
 | |
| 
 | |
| fn main() {
 | |
|     discard_all_helper::external_function();
 | |
| }
 | 
