vsk added inline comments.

================
Comment at: clang/lib/CodeGen/CoverageMappingGen.cpp:942
     pushRegion(Counter::getZero());
-    auto &ZeroRegion = getRegion();
-    ZeroRegion.setDeferred(true);
-    LastTerminatedRegion = {EndLoc, RegionStack.size()};
+    if (!HasTerminateStmt) {
+      auto &ZeroRegion = getRegion();
----------------
zequanwu wrote:
> vsk wrote:
> > What's supposed to be the difference between the zero region pushed after a 
> > `return;` vs. after a `break;`?
> What I think is `DeferredRegion` is only used for `break;` and `continue`. 
> Other terminate statements like `return;`, `throw` etc will use the logic in 
> `VisitStmt` to emit gap region. So, I added this condition to separate the 
> two cases.
What do you think of the notion of using the gaps inserted in VisitStmt to 
replace the whole deferred region system? Is it something that might be 
feasible (if perhaps out of scope for this patch), or do you see a fundamental 
reason it can't/shouldn't be done?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D97101/new/

https://reviews.llvm.org/D97101

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to