summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp7
-rw-r--r--llvm/test/tools/llvm-cov/Inputs/combine_expansions.covmappingbin161 -> 168 bytes
-rw-r--r--llvm/test/tools/llvm-cov/Inputs/highlightedRanges.covmappingbin355 -> 360 bytes
-rw-r--r--llvm/test/tools/llvm-cov/Inputs/lineExecutionCounts.covmappingbin162 -> 168 bytes
-rw-r--r--llvm/test/tools/llvm-cov/Inputs/prevent_false_instantiations.covmappingbin331 -> 336 bytes
-rw-r--r--llvm/test/tools/llvm-cov/Inputs/regionMarkers.covmappingbin202 -> 208 bytes
-rw-r--r--llvm/test/tools/llvm-cov/Inputs/showExpansions.covmappingbin250 -> 256 bytes
-rw-r--r--llvm/test/tools/llvm-cov/Inputs/templateInstantiations.covmappingbin244 -> 248 bytes
-rw-r--r--llvm/tools/llvm-cov/TestingSupport.cpp6
9 files changed, 12 insertions, 1 deletions
diff --git a/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp b/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
index 9f27de91bc5..9920c338f2d 100644
--- a/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
+++ b/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
@@ -491,6 +491,13 @@ static std::error_code loadTestingFormat(StringRef Data,
return coveragemap_error::malformed;
ProfileNames.create(Data.substr(0, ProfileNamesSize), Address);
CoverageMapping = Data.substr(ProfileNamesSize);
+ // Skip the padding bytes because coverage map data has an alignment of 8.
+ if (CoverageMapping.size() < 1)
+ return coveragemap_error::truncated;
+ size_t Pad = alignmentAdjustment(CoverageMapping.data(), 8);
+ if (CoverageMapping.size() < Pad)
+ return coveragemap_error::malformed;
+ CoverageMapping = CoverageMapping.substr(Pad);
return std::error_code();
}
diff --git a/llvm/test/tools/llvm-cov/Inputs/combine_expansions.covmapping b/llvm/test/tools/llvm-cov/Inputs/combine_expansions.covmapping
index 3acc1cd90a9..744bb291efa 100644
--- a/llvm/test/tools/llvm-cov/Inputs/combine_expansions.covmapping
+++ b/llvm/test/tools/llvm-cov/Inputs/combine_expansions.covmapping
Binary files differ
diff --git a/llvm/test/tools/llvm-cov/Inputs/highlightedRanges.covmapping b/llvm/test/tools/llvm-cov/Inputs/highlightedRanges.covmapping
index e97320b7855..5c1b1d61120 100644
--- a/llvm/test/tools/llvm-cov/Inputs/highlightedRanges.covmapping
+++ b/llvm/test/tools/llvm-cov/Inputs/highlightedRanges.covmapping
Binary files differ
diff --git a/llvm/test/tools/llvm-cov/Inputs/lineExecutionCounts.covmapping b/llvm/test/tools/llvm-cov/Inputs/lineExecutionCounts.covmapping
index 9774b89ede8..20d6abfffa7 100644
--- a/llvm/test/tools/llvm-cov/Inputs/lineExecutionCounts.covmapping
+++ b/llvm/test/tools/llvm-cov/Inputs/lineExecutionCounts.covmapping
Binary files differ
diff --git a/llvm/test/tools/llvm-cov/Inputs/prevent_false_instantiations.covmapping b/llvm/test/tools/llvm-cov/Inputs/prevent_false_instantiations.covmapping
index cfa4e295d36..bbaefe5a75f 100644
--- a/llvm/test/tools/llvm-cov/Inputs/prevent_false_instantiations.covmapping
+++ b/llvm/test/tools/llvm-cov/Inputs/prevent_false_instantiations.covmapping
Binary files differ
diff --git a/llvm/test/tools/llvm-cov/Inputs/regionMarkers.covmapping b/llvm/test/tools/llvm-cov/Inputs/regionMarkers.covmapping
index 501cba2b734..1c9b5dd45c7 100644
--- a/llvm/test/tools/llvm-cov/Inputs/regionMarkers.covmapping
+++ b/llvm/test/tools/llvm-cov/Inputs/regionMarkers.covmapping
Binary files differ
diff --git a/llvm/test/tools/llvm-cov/Inputs/showExpansions.covmapping b/llvm/test/tools/llvm-cov/Inputs/showExpansions.covmapping
index e02a7281b00..d4eb5276606 100644
--- a/llvm/test/tools/llvm-cov/Inputs/showExpansions.covmapping
+++ b/llvm/test/tools/llvm-cov/Inputs/showExpansions.covmapping
Binary files differ
diff --git a/llvm/test/tools/llvm-cov/Inputs/templateInstantiations.covmapping b/llvm/test/tools/llvm-cov/Inputs/templateInstantiations.covmapping
index d2437360451..2dfc6cddbe7 100644
--- a/llvm/test/tools/llvm-cov/Inputs/templateInstantiations.covmapping
+++ b/llvm/test/tools/llvm-cov/Inputs/templateInstantiations.covmapping
Binary files differ
diff --git a/llvm/tools/llvm-cov/TestingSupport.cpp b/llvm/tools/llvm-cov/TestingSupport.cpp
index f6c91f85c84..a662a155255 100644
--- a/llvm/tools/llvm-cov/TestingSupport.cpp
+++ b/llvm/tools/llvm-cov/TestingSupport.cpp
@@ -88,7 +88,11 @@ int convertForTestingMain(int argc, const char *argv[]) {
OS << "llvmcovmtestdata";
encodeULEB128(ProfileNamesData.size(), OS);
encodeULEB128(ProfileNamesAddress, OS);
- OS << ProfileNamesData << CoverageMappingData;
+ OS << ProfileNamesData;
+ // Coverage mapping data is expected to have an alignment of 8.
+ for (unsigned Pad = OffsetToAlignment(OS.tell(), 8); Pad; --Pad)
+ OS.write(uint8_t(0));
+ OS << CoverageMappingData;
return 0;
}
OpenPOWER on IntegriCloud