ankurrj7 wrote:

Rebased this and added another pass over the edge cases I hit while testing 
this more.

The main fixes are:

- calls in unevaluated expressions, like `sizeof(f())`, should not reserve 
continuation counters;
- `for (...; cond; inc())` needs the condition count to come from the path 
after `inc()` returns, otherwise the next condition check can be counted too 
early;
- C++ constructor calls need the same continuation handling as normal calls, 
including written constructor initializers feeding the body count;
- the coverage mapping writer minimizer was using expression ids as marker 
state. That is risky because ids like 0 and 1 are real emitted ids, so I split 
the marker state from the remapped id.

I also kept the tests split along the lines discussed earlier: CoverageMapping 
checks the regions/counters, Profile keeps the IR/single-byte checks.

https://github.com/llvm/llvm-project/pull/201079
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to