diff options
author | NAKAMURA Takumi <geek4civic@gmail.com> | 2024-02-12 14:05:58 +0900 |
---|---|---|
committer | NAKAMURA Takumi <geek4civic@gmail.com> | 2024-02-13 17:54:51 +0900 |
commit | 4588525d7edbc0d14c41f5fa8f3e23a3241a502e (patch) | |
tree | faa10c692b1d3369fb1b0edf3faa6a78a0790430 | |
parent | 0a600c34c8c1fe87c9661b6020e5044b24da3dc7 (diff) | |
download | llvm-4588525d7edbc0d14c41f5fa8f3e23a3241a502e.zip llvm-4588525d7edbc0d14c41f5fa8f3e23a3241a502e.tar.gz llvm-4588525d7edbc0d14c41f5fa8f3e23a3241a502e.tar.bz2 |
CoverageMappingReader/Writer: MCDCConditionID shouldn't be zero
-rw-r--r-- | llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp | 4 | ||||
-rw-r--r-- | llvm/lib/ProfileData/Coverage/CoverageMappingWriter.cpp | 1 |
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); |