diff options
author | NAKAMURA Takumi <geek4civic@gmail.com> | 2024-07-10 17:11:12 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-10 17:11:12 +0900 |
commit | da31b684a57cdc77ad4274fd7d8b47ee27dea6c6 (patch) | |
tree | b3132dd22853c6a66c8ffcc9d9c695c920ea14cb /clang/lib/CodeGen/CodeGenModule.cpp | |
parent | c188cb77ab99f9a455059efe4bd8b6b6665e15d0 (diff) | |
download | llvm-da31b684a57cdc77ad4274fd7d8b47ee27dea6c6.zip llvm-da31b684a57cdc77ad4274fd7d8b47ee27dea6c6.tar.gz llvm-da31b684a57cdc77ad4274fd7d8b47ee27dea6c6.tar.bz2 |
[Coverage] Suppress covmap and profdata for system headers. (#97952)
With `system-headers-coverage=false`, functions defined in system
headers were not instrumented but corresponding covmaps were emitted. It
caused wasting covmap and profraw.
This change improves:
- Reduce object size (due to reduced covmap)
- Reduce size of profraw (uninstrumented system headers occupied
counters)
- Smarter view of coverage report. Stubs of uninstrumented system
headers will be no longer seen.
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
-rw-r--r-- | clang/lib/CodeGen/CodeGenModule.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp index 44bc7fb..5c810cd 100644 --- a/clang/lib/CodeGen/CodeGenModule.cpp +++ b/clang/lib/CodeGen/CodeGenModule.cpp @@ -7165,6 +7165,9 @@ void CodeGenModule::AddDeferredUnusedCoverageMapping(Decl *D) { SourceManager &SM = getContext().getSourceManager(); if (LimitedCoverage && SM.getMainFileID() != SM.getFileID(D->getBeginLoc())) break; + if (!llvm::coverage::SystemHeadersCoverage && + SM.isInSystemHeader(D->getBeginLoc())) + break; DeferredEmptyCoverageMappingDecls.try_emplace(D, true); break; } |