================
@@ -339,8 +365,17 @@ class CoverageMappingBuilder {
 
     llvm::SmallSet<FileID, 8> Visited;
     SmallVector<std::pair<SourceLocation, unsigned>, 8> FileLocs;
-    for (const auto &Region : SourceRegions) {
+    for (auto &Region : SourceRegions) {
       SourceLocation Loc = Region.getBeginLoc();
+
+      // Replace Region with its definition if it is in <scratch space>.
+      auto NonScratchExpansionLoc = getNonScratchExpansionLoc(Loc);
+      Loc = NonScratchExpansionLoc.first;
+      auto EndLoc = NonScratchExpansionLoc.second;
+      Region.setStartLoc(Loc);
+      Region.setEndLoc(EndLoc.has_value() ? EndLoc.value()
+                                          : Region.getEndLoc());
----------------
chapuni wrote:

Could you make updates optional?

```
if (has_value) {
  Loc = ...;
  Region.set(...);
}
```

https://github.com/llvm/llvm-project/pull/89869
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to