[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