Export Segment.IsGapRegion to JSON
authorDennis Felsing <dennis.felsing@sap.com>
Fri, 27 Mar 2020 16:43:25 +0000 (17:43 +0100)
committerAaron Puchert <aaron.puchert@sap.com>
Fri, 27 Mar 2020 17:05:01 +0000 (18:05 +0100)
Summary:
So that external tools can make use of that information and not display such lines as uncovered.

Fixes https://bugs.llvm.org/show_bug.cgi?id=45300

Reviewers: vsk

Reviewed By: vsk

Differential Revision: https://reviews.llvm.org/D76763

llvm/test/tools/llvm-cov/Inputs/binary-formats.canonical.json
llvm/tools/llvm-cov/CoverageExporterJson.cpp

index f8bfced..e6eb0bd 100644 (file)
@@ -4,8 +4,8 @@ CHECK-SAME:  "files":[
 CHECK-SAME:    {"expansions":[],
 CHECK-SAME:     "filename":"/tmp/binary-formats.c",
 CHECK-SAME:     "segments":
-CHECK-SAME:        4,40,100,true,true
-CHECK-SAME:        4,42,0,false,false
+CHECK-SAME:        4,40,100,true,true,false
+CHECK-SAME:        4,42,0,false,false,false
 CHECK-SAME:     "summary":{"functions":{"count":1,"covered":1,"percent":100},
 CHECK-SAME:                "instantiations":{"count":1,"covered":1,"percent":100},
 CHECK-SAME:                "lines":{"count":1,"covered":1,"percent":100},
@@ -24,4 +24,4 @@ CHECK-SAME:     "lines":{"count":1,"covered":1,"percent":100},
 CHECK-SAME:     "regions":{"count":1,"covered":1,"notcovered":0,"percent":100}}}
 CHECK-SAME: ],
 CHECK-SAME: "type":"llvm.coverage.json.export"
-CHECK-SAME: "version":"2.0.0"
+CHECK-SAME: "version":"2.0.1"
index ba8ff5c..c5d1b24 100644 (file)
@@ -53,7 +53,7 @@
 #include <utility>
 
 /// The semantic version combined as a string.
-#define LLVM_COVERAGE_EXPORT_JSON_STR "2.0.0"
+#define LLVM_COVERAGE_EXPORT_JSON_STR "2.0.1"
 
 /// Unique type identifier for JSON coverage export.
 #define LLVM_COVERAGE_EXPORT_JSON_TYPE_STR "llvm.coverage.json.export"
@@ -72,8 +72,9 @@ int64_t clamp_uint64_to_int64(uint64_t u) {
 }
 
 json::Array renderSegment(const coverage::CoverageSegment &Segment) {
-  return json::Array({Segment.Line, Segment.Col, clamp_uint64_to_int64(Segment.Count),
-                      Segment.HasCount, Segment.IsRegionEntry});
+  return json::Array({Segment.Line, Segment.Col,
+                      clamp_uint64_to_int64(Segment.Count), Segment.HasCount,
+                      Segment.IsRegionEntry, Segment.IsGapRegion});
 }
 
 json::Array renderRegion(const coverage::CountedRegion &Region) {