Need help with llvm gcov c++ coverage


I originally posted this on [llvm-dev] but this is hopefully more relevant.

I have an existing test suite I’m gathering coverage numbers for. I’m getting 0% coverage with my C++ code, but the same setup works for C.

I’ve configured the build framework to set the compilation flags as follows:

clang++ -g -O2 -fprofile-arcs -ftest-coverage …

The suite is a mixture of C and C++ code, and when I run lcov to generate a report, the c++ tests are mostly reporting 0% coverage. I say mostly because of static initializers being reported as ran once. The C tests code correctly reports coverage for other shared libraries under test.

Here’s my compiler version:

$ clang++ --version
clang version 3.9.1 (tags/RELEASE_391/final)

I’m wondering if there are any flags or debugging things I can instrument with the c++ code to find out why the numbers aren’t being recorded.

Any help would be appreciated, this is driving me nuts.