Is source-based coverage on LLVM Clang being actively maintained?

I wanted to understand the current status and long-term direction of source-based coverage in LLVM/Clang.

Over the past few months, I’ve filed a couple of coverage accuracy issues, and while investigating them I also noticed several existing issues related to coverage mapping and reporting accuracy that appear to have been open for years without much activity.

I’m interested in contributing and helping improve this area, but before investing deeper I’d like to understand the overall picture from the community:

  • Is source-based coverage still being actively maintained?

  • Are there active maintainers or ongoing efforts around coverage mapping accuracy?

  • Is this infrastructure considered reliable and strategic for future use, or is it currently in more of a maintenance-only state?

  • Are there known limitations or architectural issues that make some of these bugs difficult to address?

We currently rely quite a bit on LLVM source-based coverage internally, so understanding its future direction and support level would really help.

My understanding is it is actively maintained; there have been several fixes and enhancements this year. In recent history there have been several talks about SBCC as well (ex. this one from the Fuchsia team).

But yes, there are a number of long-standing issues. I filed a few and asked about them a while back in this thread.

cc @evodius96 @chapuni

1 Like

Thanks @justincady ,
Yes, I saw your thread earlier, and most of the issue you reported was what I was looking into. That’s what left me wondering how other are using SBC and not encoutering thoise issue or atleast it would be good to know if some of those can be fixed or not.

Hi, yes I am one of the maintainers.

As @justincady mentioned, there’s been good activity, but yes there are a number of open issues and not a lot of contributors. I’d welcome your contributions, and I (and @chapuni and others) will assist with PRs.

I contributed support for Branch Coverage and MC/DC, and my team actively uses these features in our downstream compiler toolchains.

I wondered the same thing. I learned from @evodius96 that many of the specific problems I reported surface due to increased code complexity (ex. our codebase contains many branching macros, unfortunately).

It’s possible these could be fixed, of course. But when I investigated fixing some of the unresolved issues I found that it’s quite difficult to fix one mapping scenario without breaking others. FWIW the maintainers were responsive and supportive in the PRs for the fixes I was able to create.

thanks @evodius96 this is encouraging to know
I had filled following issues .

I am still new to llvm and still kind of exploring . but surely i will try to help in whatever manner i can .

code base i am working on is really complex and there are many issue which we have noticed already most of them are related to accuracy of report
i will keep this thread alive and hopefully try fixing few of them for sure

1 Like

@justincady yes more or less same case , code base really complex , i worked out couple of cases myself but i am still very new so not sure if i am introducing any regression or not.

i have some initial thoughts on this issue llvm-cov / clang reports unreachable code as executed when function exits via exit() · Issue #179662 · llvm/llvm-project · GitHub
can someone help me if this is right direction to explore ?
cc @justincady @evodius96

1 Like