mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-10-31 04:57:19 +00:00 
			
		
		
		
	 abc2c702af
			
		
	
	
		abc2c702af
		
	
	
	
	
		
			
			When set, this flag skips the code that normally extracts coverage spans from MIR statements and terminators. That sometimes makes it easier to debug branch coverage and MC/DC coverage, because the coverage output is less noisy. For internal debugging only. If other code changes would make it hard to keep supporting this flag, remove it.
		
			
				
	
	
		
			63 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
| #![feature(coverage_attribute)]
 | |
| //@ edition: 2021
 | |
| //@ compile-flags: -Zcoverage-options=branch,no-mir-spans
 | |
| //@ llvm-cov-flags: --show-branches=count
 | |
| 
 | |
| // Tests the behaviour of the `-Zcoverage-options=no-mir-spans` debugging flag.
 | |
| // The actual code below is just some non-trivial code copied from another test
 | |
| // (`while.rs`), and has no particular significance.
 | |
| 
 | |
| macro_rules! no_merge {
 | |
|     () => {
 | |
|         for _ in 0..1 {}
 | |
|     };
 | |
| }
 | |
| 
 | |
| fn while_cond() {
 | |
|     no_merge!();
 | |
| 
 | |
|     let mut a = 8;
 | |
|     while a > 0 {
 | |
|         a -= 1;
 | |
|     }
 | |
| }
 | |
| 
 | |
| fn while_cond_not() {
 | |
|     no_merge!();
 | |
| 
 | |
|     let mut a = 8;
 | |
|     while !(a == 0) {
 | |
|         a -= 1;
 | |
|     }
 | |
| }
 | |
| 
 | |
| fn while_op_and() {
 | |
|     no_merge!();
 | |
| 
 | |
|     let mut a = 8;
 | |
|     let mut b = 4;
 | |
|     while a > 0 && b > 0 {
 | |
|         a -= 1;
 | |
|         b -= 1;
 | |
|     }
 | |
| }
 | |
| 
 | |
| fn while_op_or() {
 | |
|     no_merge!();
 | |
| 
 | |
|     let mut a = 4;
 | |
|     let mut b = 8;
 | |
|     while a > 0 || b > 0 {
 | |
|         a -= 1;
 | |
|         b -= 1;
 | |
|     }
 | |
| }
 | |
| 
 | |
| #[coverage(off)]
 | |
| fn main() {
 | |
|     while_cond();
 | |
|     while_cond_not();
 | |
|     while_op_and();
 | |
|     while_op_or();
 | |
| }
 |