diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2017-12-18 20:10:56 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2017-12-18 20:10:56 +0000 | 
| commit | 044eb2f6afba375a914ac9d8024f8f5142bb912e (patch) | |
| tree | 1475247dc9f9fe5be155ebd4c9069c75aadf8c20 /lib/ProfileData/Coverage/CoverageMappingWriter.cpp | |
| parent | eb70dddbd77e120e5d490bd8fbe7ff3f8fa81c6b (diff) | |
Notes
Diffstat (limited to 'lib/ProfileData/Coverage/CoverageMappingWriter.cpp')
| -rw-r--r-- | lib/ProfileData/Coverage/CoverageMappingWriter.cpp | 8 | 
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/ProfileData/Coverage/CoverageMappingWriter.cpp b/lib/ProfileData/Coverage/CoverageMappingWriter.cpp index 6fe93530da21b..49e82e4810591 100644 --- a/lib/ProfileData/Coverage/CoverageMappingWriter.cpp +++ b/lib/ProfileData/Coverage/CoverageMappingWriter.cpp @@ -116,6 +116,13 @@ static void writeCounter(ArrayRef<CounterExpression> 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: {  | 
