[llvm] 5222733 - Revert "[llvm-cov] Fix a bug about using `convert-for-testing` on multi-source object files"
Gulfem Savrun Yeniceri via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 15 13:54:34 PDT 2023
Author: Gulfem Savrun Yeniceri
Date: 2023-08-15T20:28:30Z
New Revision: 5222733b4c67eff1624f36de2248f58995d392ac
URL: https://github.com/llvm/llvm-project/commit/5222733b4c67eff1624f36de2248f58995d392ac
DIFF: https://github.com/llvm/llvm-project/commit/5222733b4c67eff1624f36de2248f58995d392ac.diff
LOG: Revert "[llvm-cov] Fix a bug about using `convert-for-testing` on multi-source object files"
This reverts commit f8ad86c23405168a8cd189590184fdcc296627e0 because
it broke some downsteam tests reported in https://reviews.llvm.org/D156611.
Added:
Modified:
llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
llvm/test/tools/llvm-cov/Inputs/combine_expansions.covmapping
llvm/test/tools/llvm-cov/Inputs/compilation_dir.covmapping
llvm/test/tools/llvm-cov/Inputs/coverage_prefix_map/main.covmapping
llvm/test/tools/llvm-cov/Inputs/deferred-regions.covmapping
llvm/test/tools/llvm-cov/Inputs/dir-with-filtering.covmapping
llvm/test/tools/llvm-cov/Inputs/double_dots.covmapping
llvm/test/tools/llvm-cov/Inputs/highlightedRanges.covmapping
llvm/test/tools/llvm-cov/Inputs/ifdef.covmapping
llvm/test/tools/llvm-cov/Inputs/lineExecutionCounts.covmapping
llvm/test/tools/llvm-cov/Inputs/malformedRegions.covmapping
llvm/test/tools/llvm-cov/Inputs/multiple-files.covmapping
llvm/test/tools/llvm-cov/Inputs/multiple-files2.covmapping
llvm/test/tools/llvm-cov/Inputs/multiple_objects/use_1.covmapping
llvm/test/tools/llvm-cov/Inputs/multiple_objects/use_2.covmapping
llvm/test/tools/llvm-cov/Inputs/multithreaded_report/main.covmapping
llvm/test/tools/llvm-cov/Inputs/name_allowlist.covmapping
llvm/test/tools/llvm-cov/Inputs/name_whitelist.covmapping
llvm/test/tools/llvm-cov/Inputs/native_separators.covmapping
llvm/test/tools/llvm-cov/Inputs/path_equivalence.covmapping
llvm/test/tools/llvm-cov/Inputs/prefer_used_to_unused.covmapping
llvm/test/tools/llvm-cov/Inputs/prevent_false_instantiations.covmapping
llvm/test/tools/llvm-cov/Inputs/regionMarkers.covmapping
llvm/test/tools/llvm-cov/Inputs/relative_dir/main.covmapping
llvm/test/tools/llvm-cov/Inputs/report.covmapping
llvm/test/tools/llvm-cov/Inputs/showExpansions.covmapping
llvm/test/tools/llvm-cov/Inputs/showProjectSummary.covmapping
llvm/test/tools/llvm-cov/Inputs/showTabsHTML.covmapping
llvm/test/tools/llvm-cov/Inputs/sources_specified/main.covmapping
llvm/test/tools/llvm-cov/Inputs/templateInstantiations.covmapping
llvm/test/tools/llvm-cov/Inputs/zeroFunctionFile.covmapping
llvm/tools/llvm-cov/TestingSupport.cpp
Removed:
################################################################################
diff --git a/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp b/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
index 2f290b2a2dbf8d..05737323314a8a 100644
--- a/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
+++ b/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
@@ -886,46 +886,41 @@ loadTestingFormat(StringRef Data, StringRef CompilationDir) {
if (Error E = ProfileNames.create(Data.substr(0, ProfileNamesSize), Address))
return std::move(E);
Data = Data.substr(ProfileNamesSize);
-
- N = 0;
- uint64_t CoverageMappingSize = decodeULEB128(Data.bytes_begin(), &N);
- if (N > Data.size())
- return make_error<CoverageMapError>(coveragemap_error::malformed);
- Data = Data.substr(N);
-
// Skip the padding bytes because coverage map data has an alignment of 8.
size_t Pad = offsetToAlignedAddr(Data.data(), Align(8));
if (Data.size() < Pad)
return make_error<CoverageMapError>(coveragemap_error::malformed);
Data = Data.substr(Pad);
- if (Data.size() < CoverageMappingSize)
- return make_error<CoverageMapError>(coveragemap_error::malformed);
- StringRef CoverageMapping = Data.substr(0, CoverageMappingSize);
- Data = Data.substr(CoverageMappingSize);
-
- // Skip the padding bytes because coverage records data has an alignment of 8.
- Pad = offsetToAlignedAddr(Data.data(), Align(8));
- if (Data.size() < Pad)
+ if (Data.size() < sizeof(CovMapHeader))
return make_error<CoverageMapError>(coveragemap_error::malformed);
- Data = Data.substr(Pad);
- BinaryCoverageReader::FuncRecordsStorage CoverageRecords =
- MemoryBuffer::getMemBuffer(Data);
-
- // Some extra checking.
- if (CoverageMapping.size() < sizeof(CovMapHeader))
- return make_error<CoverageMapError>(coveragemap_error::truncated);
- auto const *CovHeader =
- reinterpret_cast<const CovMapHeader *>(CoverageMapping.data());
+ auto const *CovHeader = reinterpret_cast<const CovMapHeader *>(
+ Data.substr(0, sizeof(CovMapHeader)).data());
CovMapVersion Version =
(CovMapVersion)CovHeader->getVersion<support::endianness::little>();
+ StringRef CoverageMapping;
+ BinaryCoverageReader::FuncRecordsStorage CoverageRecords;
if (Version < CovMapVersion::Version4) {
- if (CoverageRecords->getBufferSize() != 0)
- return make_error<CoverageMapError>(coveragemap_error::malformed);
+ CoverageMapping = Data;
+ if (CoverageMapping.empty())
+ return make_error<CoverageMapError>(coveragemap_error::truncated);
+ CoverageRecords = MemoryBuffer::getMemBuffer("");
} else {
+ uint32_t FilenamesSize =
+ CovHeader->getFilenamesSize<support::endianness::little>();
+ uint32_t CoverageMappingSize = sizeof(CovMapHeader) + FilenamesSize;
+ CoverageMapping = Data.substr(0, CoverageMappingSize);
+ if (CoverageMapping.empty())
+ return make_error<CoverageMapError>(coveragemap_error::truncated);
+ Data = Data.substr(CoverageMappingSize);
+ // Skip the padding bytes because coverage records data has an alignment
+ // of 8.
+ Pad = offsetToAlignedAddr(Data.data(), Align(8));
+ if (Data.size() < Pad)
+ return make_error<CoverageMapError>(coveragemap_error::malformed);
+ CoverageRecords = MemoryBuffer::getMemBuffer(Data.substr(Pad));
if (CoverageRecords->getBufferSize() == 0)
return make_error<CoverageMapError>(coveragemap_error::truncated);
}
-
return BinaryCoverageReader::createCoverageReaderFromBuffer(
CoverageMapping, std::move(CoverageRecords), std::move(ProfileNames),
BytesInAddress, Endian, CompilationDir);
diff --git a/llvm/test/tools/llvm-cov/Inputs/combine_expansions.covmapping b/llvm/test/tools/llvm-cov/Inputs/combine_expansions.covmapping
index d46cb617cc2421..744bb291efabde 100644
Binary files a/llvm/test/tools/llvm-cov/Inputs/combine_expansions.covmapping and b/llvm/test/tools/llvm-cov/Inputs/combine_expansions.covmapping
diff er
diff --git a/llvm/test/tools/llvm-cov/Inputs/compilation_dir.covmapping b/llvm/test/tools/llvm-cov/Inputs/compilation_dir.covmapping
index 1477d41be27b23..01879d7bd95290 100644
Binary files a/llvm/test/tools/llvm-cov/Inputs/compilation_dir.covmapping and b/llvm/test/tools/llvm-cov/Inputs/compilation_dir.covmapping
diff er
diff --git a/llvm/test/tools/llvm-cov/Inputs/coverage_prefix_map/main.covmapping b/llvm/test/tools/llvm-cov/Inputs/coverage_prefix_map/main.covmapping
index 427cd102f89728..6f3062c20c5739 100644
Binary files a/llvm/test/tools/llvm-cov/Inputs/coverage_prefix_map/main.covmapping and b/llvm/test/tools/llvm-cov/Inputs/coverage_prefix_map/main.covmapping
diff er
diff --git a/llvm/test/tools/llvm-cov/Inputs/deferred-regions.covmapping b/llvm/test/tools/llvm-cov/Inputs/deferred-regions.covmapping
index 977d4ef7b58098..750dd81aff2196 100644
Binary files a/llvm/test/tools/llvm-cov/Inputs/deferred-regions.covmapping and b/llvm/test/tools/llvm-cov/Inputs/deferred-regions.covmapping
diff er
diff --git a/llvm/test/tools/llvm-cov/Inputs/dir-with-filtering.covmapping b/llvm/test/tools/llvm-cov/Inputs/dir-with-filtering.covmapping
index 406e2fac52bc30..0f52ba896ec317 100644
Binary files a/llvm/test/tools/llvm-cov/Inputs/dir-with-filtering.covmapping and b/llvm/test/tools/llvm-cov/Inputs/dir-with-filtering.covmapping
diff er
diff --git a/llvm/test/tools/llvm-cov/Inputs/double_dots.covmapping b/llvm/test/tools/llvm-cov/Inputs/double_dots.covmapping
index ba2f2ef3281f88..b03e19e03e877b 100644
Binary files a/llvm/test/tools/llvm-cov/Inputs/double_dots.covmapping and b/llvm/test/tools/llvm-cov/Inputs/double_dots.covmapping
diff er
diff --git a/llvm/test/tools/llvm-cov/Inputs/highlightedRanges.covmapping b/llvm/test/tools/llvm-cov/Inputs/highlightedRanges.covmapping
index 9d939cf74d49eb..5c3d67f24e1eb2 100644
Binary files a/llvm/test/tools/llvm-cov/Inputs/highlightedRanges.covmapping and b/llvm/test/tools/llvm-cov/Inputs/highlightedRanges.covmapping
diff er
diff --git a/llvm/test/tools/llvm-cov/Inputs/ifdef.covmapping b/llvm/test/tools/llvm-cov/Inputs/ifdef.covmapping
index 8f114a52ff6ab5..212a1bae83347f 100644
Binary files a/llvm/test/tools/llvm-cov/Inputs/ifdef.covmapping and b/llvm/test/tools/llvm-cov/Inputs/ifdef.covmapping
diff er
diff --git a/llvm/test/tools/llvm-cov/Inputs/lineExecutionCounts.covmapping b/llvm/test/tools/llvm-cov/Inputs/lineExecutionCounts.covmapping
index e5eeb28097c769..0b2458ae4fd001 100644
Binary files a/llvm/test/tools/llvm-cov/Inputs/lineExecutionCounts.covmapping and b/llvm/test/tools/llvm-cov/Inputs/lineExecutionCounts.covmapping
diff er
diff --git a/llvm/test/tools/llvm-cov/Inputs/malformedRegions.covmapping b/llvm/test/tools/llvm-cov/Inputs/malformedRegions.covmapping
index 58aceb1fd689db..20d6abfffa73ed 100644
Binary files a/llvm/test/tools/llvm-cov/Inputs/malformedRegions.covmapping and b/llvm/test/tools/llvm-cov/Inputs/malformedRegions.covmapping
diff er
diff --git a/llvm/test/tools/llvm-cov/Inputs/multiple-files.covmapping b/llvm/test/tools/llvm-cov/Inputs/multiple-files.covmapping
index eabb6112aaee13..3e229a8c301a75 100644
Binary files a/llvm/test/tools/llvm-cov/Inputs/multiple-files.covmapping and b/llvm/test/tools/llvm-cov/Inputs/multiple-files.covmapping
diff er
diff --git a/llvm/test/tools/llvm-cov/Inputs/multiple-files2.covmapping b/llvm/test/tools/llvm-cov/Inputs/multiple-files2.covmapping
index f377c0843e414f..770817a53806e4 100644
Binary files a/llvm/test/tools/llvm-cov/Inputs/multiple-files2.covmapping and b/llvm/test/tools/llvm-cov/Inputs/multiple-files2.covmapping
diff er
diff --git a/llvm/test/tools/llvm-cov/Inputs/multiple_objects/use_1.covmapping b/llvm/test/tools/llvm-cov/Inputs/multiple_objects/use_1.covmapping
index a393cd6e9f1c96..641bdb441c24e9 100644
Binary files a/llvm/test/tools/llvm-cov/Inputs/multiple_objects/use_1.covmapping and b/llvm/test/tools/llvm-cov/Inputs/multiple_objects/use_1.covmapping
diff er
diff --git a/llvm/test/tools/llvm-cov/Inputs/multiple_objects/use_2.covmapping b/llvm/test/tools/llvm-cov/Inputs/multiple_objects/use_2.covmapping
index 46a939ed98a7cd..f26caea74803f5 100644
Binary files a/llvm/test/tools/llvm-cov/Inputs/multiple_objects/use_2.covmapping and b/llvm/test/tools/llvm-cov/Inputs/multiple_objects/use_2.covmapping
diff er
diff --git a/llvm/test/tools/llvm-cov/Inputs/multithreaded_report/main.covmapping b/llvm/test/tools/llvm-cov/Inputs/multithreaded_report/main.covmapping
index c597087c46df6d..75bd4cb760b8af 100644
Binary files a/llvm/test/tools/llvm-cov/Inputs/multithreaded_report/main.covmapping and b/llvm/test/tools/llvm-cov/Inputs/multithreaded_report/main.covmapping
diff er
diff --git a/llvm/test/tools/llvm-cov/Inputs/name_allowlist.covmapping b/llvm/test/tools/llvm-cov/Inputs/name_allowlist.covmapping
index dc057c1f58c17a..7a7ab700f367c5 100644
Binary files a/llvm/test/tools/llvm-cov/Inputs/name_allowlist.covmapping and b/llvm/test/tools/llvm-cov/Inputs/name_allowlist.covmapping
diff er
diff --git a/llvm/test/tools/llvm-cov/Inputs/name_whitelist.covmapping b/llvm/test/tools/llvm-cov/Inputs/name_whitelist.covmapping
index a5f05b016af87e..6c067abd027997 100644
Binary files a/llvm/test/tools/llvm-cov/Inputs/name_whitelist.covmapping and b/llvm/test/tools/llvm-cov/Inputs/name_whitelist.covmapping
diff er
diff --git a/llvm/test/tools/llvm-cov/Inputs/native_separators.covmapping b/llvm/test/tools/llvm-cov/Inputs/native_separators.covmapping
index 840ffe893d1dab..ce8d6bb7d9e3a8 100644
Binary files a/llvm/test/tools/llvm-cov/Inputs/native_separators.covmapping and b/llvm/test/tools/llvm-cov/Inputs/native_separators.covmapping
diff er
diff --git a/llvm/test/tools/llvm-cov/Inputs/path_equivalence.covmapping b/llvm/test/tools/llvm-cov/Inputs/path_equivalence.covmapping
index 17a2125983e75d..ea09bf3130ced9 100644
Binary files a/llvm/test/tools/llvm-cov/Inputs/path_equivalence.covmapping and b/llvm/test/tools/llvm-cov/Inputs/path_equivalence.covmapping
diff er
diff --git a/llvm/test/tools/llvm-cov/Inputs/prefer_used_to_unused.covmapping b/llvm/test/tools/llvm-cov/Inputs/prefer_used_to_unused.covmapping
index 927db4dc523407..c4e1c805b93e1e 100644
Binary files a/llvm/test/tools/llvm-cov/Inputs/prefer_used_to_unused.covmapping and b/llvm/test/tools/llvm-cov/Inputs/prefer_used_to_unused.covmapping
diff er
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 78609d1cf9492f..bbaefe5a75f624 100644
Binary files a/llvm/test/tools/llvm-cov/Inputs/prevent_false_instantiations.covmapping and b/llvm/test/tools/llvm-cov/Inputs/prevent_false_instantiations.covmapping
diff er
diff --git a/llvm/test/tools/llvm-cov/Inputs/regionMarkers.covmapping b/llvm/test/tools/llvm-cov/Inputs/regionMarkers.covmapping
index 09e02162b4f6bd..af920c2d169a59 100644
Binary files a/llvm/test/tools/llvm-cov/Inputs/regionMarkers.covmapping and b/llvm/test/tools/llvm-cov/Inputs/regionMarkers.covmapping
diff er
diff --git a/llvm/test/tools/llvm-cov/Inputs/relative_dir/main.covmapping b/llvm/test/tools/llvm-cov/Inputs/relative_dir/main.covmapping
index 9211ab65eddbc6..665aa963ebd366 100644
Binary files a/llvm/test/tools/llvm-cov/Inputs/relative_dir/main.covmapping and b/llvm/test/tools/llvm-cov/Inputs/relative_dir/main.covmapping
diff er
diff --git a/llvm/test/tools/llvm-cov/Inputs/report.covmapping b/llvm/test/tools/llvm-cov/Inputs/report.covmapping
index 39d17a966b1034..f9858ed272b90f 100644
Binary files a/llvm/test/tools/llvm-cov/Inputs/report.covmapping and b/llvm/test/tools/llvm-cov/Inputs/report.covmapping
diff er
diff --git a/llvm/test/tools/llvm-cov/Inputs/showExpansions.covmapping b/llvm/test/tools/llvm-cov/Inputs/showExpansions.covmapping
index d859eed3ac66b1..d4eb527660662e 100644
Binary files a/llvm/test/tools/llvm-cov/Inputs/showExpansions.covmapping and b/llvm/test/tools/llvm-cov/Inputs/showExpansions.covmapping
diff er
diff --git a/llvm/test/tools/llvm-cov/Inputs/showProjectSummary.covmapping b/llvm/test/tools/llvm-cov/Inputs/showProjectSummary.covmapping
index 4d5b4e7db0e6ab..d95caf27f2bdea 100644
Binary files a/llvm/test/tools/llvm-cov/Inputs/showProjectSummary.covmapping and b/llvm/test/tools/llvm-cov/Inputs/showProjectSummary.covmapping
diff er
diff --git a/llvm/test/tools/llvm-cov/Inputs/showTabsHTML.covmapping b/llvm/test/tools/llvm-cov/Inputs/showTabsHTML.covmapping
index 37d4174652f9e4..96df49dcc591a7 100644
Binary files a/llvm/test/tools/llvm-cov/Inputs/showTabsHTML.covmapping and b/llvm/test/tools/llvm-cov/Inputs/showTabsHTML.covmapping
diff er
diff --git a/llvm/test/tools/llvm-cov/Inputs/sources_specified/main.covmapping b/llvm/test/tools/llvm-cov/Inputs/sources_specified/main.covmapping
index a73971e6fb1086..440d59a74ca530 100644
Binary files a/llvm/test/tools/llvm-cov/Inputs/sources_specified/main.covmapping and b/llvm/test/tools/llvm-cov/Inputs/sources_specified/main.covmapping
diff er
diff --git a/llvm/test/tools/llvm-cov/Inputs/templateInstantiations.covmapping b/llvm/test/tools/llvm-cov/Inputs/templateInstantiations.covmapping
index ebcbd2ceba83cb..b604e0604ad3cc 100644
Binary files a/llvm/test/tools/llvm-cov/Inputs/templateInstantiations.covmapping and b/llvm/test/tools/llvm-cov/Inputs/templateInstantiations.covmapping
diff er
diff --git a/llvm/test/tools/llvm-cov/Inputs/zeroFunctionFile.covmapping b/llvm/test/tools/llvm-cov/Inputs/zeroFunctionFile.covmapping
index c46cf26581c335..b2c198a8fe0e5f 100644
Binary files a/llvm/test/tools/llvm-cov/Inputs/zeroFunctionFile.covmapping and b/llvm/test/tools/llvm-cov/Inputs/zeroFunctionFile.covmapping
diff er
diff --git a/llvm/tools/llvm-cov/TestingSupport.cpp b/llvm/tools/llvm-cov/TestingSupport.cpp
index 0d7874a267af0a..289a1621660b06 100644
--- a/llvm/tools/llvm-cov/TestingSupport.cpp
+++ b/llvm/tools/llvm-cov/TestingSupport.cpp
@@ -111,7 +111,6 @@ int convertForTestingMain(int argc, const char *argv[]) {
encodeULEB128(ProfileNamesData.size(), OS);
encodeULEB128(ProfileNamesAddress, OS);
OS << ProfileNamesData;
- encodeULEB128(CoverageMappingData.size(), OS);
// Coverage mapping data is expected to have an alignment of 8.
for (unsigned Pad = offsetToAlignment(OS.tell(), Align(8)); Pad; --Pad)
OS.write(uint8_t(0));
More information about the llvm-commits
mailing list