aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
diff options
context:
space:
mode:
authorgulfemsavrun <gulfem@google.com>2024-09-13 16:41:07 -0700
committerGitHub <noreply@github.com>2024-09-13 16:41:07 -0700
commit536bdc99e6ed2388426ce94d0bd75a61aecab396 (patch)
tree303d17a6d968110bd0809d893173d0e29eecf8e8 /llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
parentca4973972bf1306b49413a76f2d0c25c3df711aa (diff)
downloadllvm-536bdc99e6ed2388426ce94d0bd75a61aecab396.zip
llvm-536bdc99e6ed2388426ce94d0bd75a61aecab396.tar.gz
llvm-536bdc99e6ed2388426ce94d0bd75a61aecab396.tar.bz2
[Coverage] Skip empty profile name section (#108480)
llvm-cov reads __llvm_prf_names section in an object file to find the profile names, and it instead reads __llvm_covnames section in binary profile correlation mode when __llvm_prf_names section is omitted. This patch ensures that it still reads __llvm_covnames section when there is an empty __llvm_prf_names section.
Diffstat (limited to 'llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp')
-rw-r--r--llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp b/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
index 445b480..bc4e780 100644
--- a/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
+++ b/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
@@ -1061,9 +1061,11 @@ lookupSections(ObjectFile &OF, InstrProfSectKind IPSK) {
if (!NameOrErr)
return NameOrErr.takeError();
if (stripSuffix(*NameOrErr) == Name) {
+ // Skip empty profile name section.
// COFF profile name section contains two null bytes indicating the
// start/end of the section. If its size is 2 bytes, it's empty.
- if (IsCOFF && IPSK == IPSK_name && Section.getSize() == 2)
+ if (IPSK == IPSK_name &&
+ (Section.getSize() == 0 || (IsCOFF && Section.getSize() == 2)))
continue;
Sections.push_back(Section);
}