diff options
-rw-r--r-- | llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp | 7 | ||||
-rw-r--r-- | llvm/test/tools/llvm-cov/Inputs/combine_expansions.covmapping | bin | 161 -> 168 bytes | |||
-rw-r--r-- | llvm/test/tools/llvm-cov/Inputs/highlightedRanges.covmapping | bin | 355 -> 360 bytes | |||
-rw-r--r-- | llvm/test/tools/llvm-cov/Inputs/lineExecutionCounts.covmapping | bin | 162 -> 168 bytes | |||
-rw-r--r-- | llvm/test/tools/llvm-cov/Inputs/prevent_false_instantiations.covmapping | bin | 331 -> 336 bytes | |||
-rw-r--r-- | llvm/test/tools/llvm-cov/Inputs/regionMarkers.covmapping | bin | 202 -> 208 bytes | |||
-rw-r--r-- | llvm/test/tools/llvm-cov/Inputs/showExpansions.covmapping | bin | 250 -> 256 bytes | |||
-rw-r--r-- | llvm/test/tools/llvm-cov/Inputs/templateInstantiations.covmapping | bin | 244 -> 248 bytes | |||
-rw-r--r-- | llvm/tools/llvm-cov/TestingSupport.cpp | 6 |
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 Binary files differindex 3acc1cd90a9..744bb291efa 100644 --- a/llvm/test/tools/llvm-cov/Inputs/combine_expansions.covmapping +++ b/llvm/test/tools/llvm-cov/Inputs/combine_expansions.covmapping diff --git a/llvm/test/tools/llvm-cov/Inputs/highlightedRanges.covmapping b/llvm/test/tools/llvm-cov/Inputs/highlightedRanges.covmapping Binary files differindex e97320b7855..5c1b1d61120 100644 --- a/llvm/test/tools/llvm-cov/Inputs/highlightedRanges.covmapping +++ b/llvm/test/tools/llvm-cov/Inputs/highlightedRanges.covmapping diff --git a/llvm/test/tools/llvm-cov/Inputs/lineExecutionCounts.covmapping b/llvm/test/tools/llvm-cov/Inputs/lineExecutionCounts.covmapping Binary files differindex 9774b89ede8..20d6abfffa7 100644 --- a/llvm/test/tools/llvm-cov/Inputs/lineExecutionCounts.covmapping +++ b/llvm/test/tools/llvm-cov/Inputs/lineExecutionCounts.covmapping diff --git a/llvm/test/tools/llvm-cov/Inputs/prevent_false_instantiations.covmapping b/llvm/test/tools/llvm-cov/Inputs/prevent_false_instantiations.covmapping Binary files differindex 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 diff --git a/llvm/test/tools/llvm-cov/Inputs/regionMarkers.covmapping b/llvm/test/tools/llvm-cov/Inputs/regionMarkers.covmapping Binary files differindex 501cba2b734..1c9b5dd45c7 100644 --- a/llvm/test/tools/llvm-cov/Inputs/regionMarkers.covmapping +++ b/llvm/test/tools/llvm-cov/Inputs/regionMarkers.covmapping diff --git a/llvm/test/tools/llvm-cov/Inputs/showExpansions.covmapping b/llvm/test/tools/llvm-cov/Inputs/showExpansions.covmapping Binary files differindex e02a7281b00..d4eb5276606 100644 --- a/llvm/test/tools/llvm-cov/Inputs/showExpansions.covmapping +++ b/llvm/test/tools/llvm-cov/Inputs/showExpansions.covmapping diff --git a/llvm/test/tools/llvm-cov/Inputs/templateInstantiations.covmapping b/llvm/test/tools/llvm-cov/Inputs/templateInstantiations.covmapping Binary files differindex d2437360451..2dfc6cddbe7 100644 --- a/llvm/test/tools/llvm-cov/Inputs/templateInstantiations.covmapping +++ b/llvm/test/tools/llvm-cov/Inputs/templateInstantiations.covmapping 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; } |