aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/ProfileData
diff options
context:
space:
mode:
authorNAKAMURA Takumi <geek4civic@gmail.com>2024-02-12 14:05:58 +0900
committerNAKAMURA Takumi <geek4civic@gmail.com>2024-02-13 17:54:51 +0900
commit4588525d7edbc0d14c41f5fa8f3e23a3241a502e (patch)
treefaa10c692b1d3369fb1b0edf3faa6a78a0790430 /llvm/lib/ProfileData
parent0a600c34c8c1fe87c9661b6020e5044b24da3dc7 (diff)
downloadllvm-4588525d7edbc0d14c41f5fa8f3e23a3241a502e.zip
llvm-4588525d7edbc0d14c41f5fa8f3e23a3241a502e.tar.gz
llvm-4588525d7edbc0d14c41f5fa8f3e23a3241a502e.tar.bz2
CoverageMappingReader/Writer: MCDCConditionID shouldn't be zero
Diffstat (limited to 'llvm/lib/ProfileData')
-rw-r--r--llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp4
-rw-r--r--llvm/lib/ProfileData/Coverage/CoverageMappingWriter.cpp1
2 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp b/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
index fc6014c..061f0f1 100644
--- a/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
+++ b/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
@@ -308,6 +308,10 @@ Error RawCoverageMappingReader::readMappingRegionsSubArray(
return Err;
if (auto Err = readIntMax(FID, std::numeric_limits<unsigned>::max()))
return Err;
+ if (ID == 0)
+ return make_error<CoverageMapError>(
+ coveragemap_error::malformed,
+ "MCDCConditionID shouldn't be zero");
break;
case CounterMappingRegion::MCDCDecisionRegion:
Kind = CounterMappingRegion::MCDCDecisionRegion;
diff --git a/llvm/lib/ProfileData/Coverage/CoverageMappingWriter.cpp b/llvm/lib/ProfileData/Coverage/CoverageMappingWriter.cpp
index 27727f2..248a6a7 100644
--- a/llvm/lib/ProfileData/Coverage/CoverageMappingWriter.cpp
+++ b/llvm/lib/ProfileData/Coverage/CoverageMappingWriter.cpp
@@ -251,6 +251,7 @@ void CoverageMappingWriter::write(raw_ostream &OS) {
OS);
writeCounter(MinExpressions, Count, OS);
writeCounter(MinExpressions, FalseCount, OS);
+ assert(I->MCDCParams.ID > 0);
encodeULEB128(unsigned(I->MCDCParams.ID), OS);
encodeULEB128(unsigned(I->MCDCParams.TrueID), OS);
encodeULEB128(unsigned(I->MCDCParams.FalseID), OS);