Skip to content

Commit

Permalink
[Coverage] Do not map regions from system headers
Browse files Browse the repository at this point in the history
Do not assign source regions located within system headers file ID's,
and do not construct counter mapping regions out of them.

This makes coverage reports less cluttered and less mysterious. E.g
using the "assert" macro doesn't cause assert.h to appear in reports,
and it no longer shows the "assertion failed" branch as an uncovered
region.

It also makes coverage mapping sections a bit smaller (e.g a 1%
reduction in a stage2 build of bin/llvm-as).

llvm-svn: 275121
  • Loading branch information
vedantk committed Jul 11, 2016
1 parent c468bb8 commit 93205af
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 2 deletions.
8 changes: 8 additions & 0 deletions clang/lib/CodeGen/CoverageMappingGen.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,10 @@ class CoverageMappingBuilder {
if (!Visited.insert(File).second)
continue;

// Do not map FileID's associated with system headers.
if (SM.isInSystemHeader(SM.getSpellingLoc(Loc)))
continue;

unsigned Depth = 0;
for (SourceLocation Parent = getIncludeOrExpansionLoc(Loc);
Parent.isValid(); Parent = getIncludeOrExpansionLoc(Parent))
Expand Down Expand Up @@ -251,6 +255,10 @@ class CoverageMappingBuilder {
SourceLocation LocStart = Region.getStartLoc();
assert(SM.getFileID(LocStart).isValid() && "region in invalid file");

// Ignore regions from system headers.
if (SM.isInSystemHeader(SM.getSpellingLoc(LocStart)))
continue;

auto CovFileID = getCoverageFileID(LocStart);
// Ignore regions that don't have a file, such as builtin macros.
if (!CovFileID)
Expand Down
3 changes: 1 addition & 2 deletions clang/test/CoverageMapping/system_macro.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,8 @@

// CHECK-LABEL: doSomething:
void doSomething(int x) { // CHECK: File 0, [[@LINE]]:25 -> {{[0-9:]+}} = #0
Func(x); // CHECK: Expansion,File 0, [[@LINE]]:3 -> [[@LINE]]:7
Func(x);
return;
// CHECK: Expansion,File 0, [[@LINE+1]]:3 -> [[@LINE+1]]:11
SomeType *f; // CHECK: File 0, [[@LINE]]:11 -> {{[0-9:]+}} = 0
}

Expand Down

0 comments on commit 93205af

Please sign in to comment.