From bdabc2f19ffb9e20600dad6e8a300842a7bda50e Mon Sep 17 00:00:00 2001 From: patrick Date: Fri, 6 Apr 2018 14:26:03 +0000 Subject: Import LLVM 6.0.1 release including clang, lld and lldb. "where is the kaboom?" deraadt@ --- gnu/llvm/lib/ProfileData/Coverage/CoverageMappingWriter.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'gnu/llvm/lib/ProfileData/Coverage/CoverageMappingWriter.cpp') diff --git a/gnu/llvm/lib/ProfileData/Coverage/CoverageMappingWriter.cpp b/gnu/llvm/lib/ProfileData/Coverage/CoverageMappingWriter.cpp index 6fe93530da2..49e82e48105 100644 --- a/gnu/llvm/lib/ProfileData/Coverage/CoverageMappingWriter.cpp +++ b/gnu/llvm/lib/ProfileData/Coverage/CoverageMappingWriter.cpp @@ -116,6 +116,13 @@ static void writeCounter(ArrayRef Expressions, Counter C, } void CoverageMappingWriter::write(raw_ostream &OS) { + // Check that we don't have any bogus regions. + assert(all_of(MappingRegions, + [](const CounterMappingRegion &CMR) { + return CMR.startLoc() <= CMR.endLoc(); + }) && + "Source region does not begin before it ends"); + // Sort the regions in an ascending order by the file id and the starting // location. Sort by region kinds to ensure stable order for tests. std::stable_sort( @@ -164,6 +171,7 @@ void CoverageMappingWriter::write(raw_ostream &OS) { Counter Count = Minimizer.adjust(I->Count); switch (I->Kind) { case CounterMappingRegion::CodeRegion: + case CounterMappingRegion::GapRegion: writeCounter(MinExpressions, Count, OS); break; case CounterMappingRegion::ExpansionRegion: { -- cgit v1.2.3-59-g8ed1b