[llvm-dev] does #line directive of c++ work for Source-based Code Coverage?

C Chung via llvm-dev llvm-dev at lists.llvm.org
Tue Aug 16 15:43:38 PDT 2016

Hi All,

I tried to use line directive in one of my C++ source file hoping that the
report generated from llvm-cov will display the file name and line number
specified in "#line ..." directive instead of the real file that got
compiled, but it does not seem to work.

Do you know how or if it is even possible to do so?

[detailed problem description]
1. I have a main file named "foo.cpp" and another file named "real.cpp"
2. at the bottom of "foo.cpp", it has a block of code clipped from
"real.cpp" (say line 10 to line 20 of real.cpp).
3. right before the clipped code, I added the following line directive in
front of it (in foo.cpp).
    #line 10 "real.cpp"
4. Then, I compile it (clang++ -fprofile-instr-generate -fcoverage-mapping
foo.cpp -o foo), run the executable file, get raw profile, index the raw
profile, and run llvm-cov -show/report to read the coverage.
5. In the report, the file name always shows up as "foo.cpp" NOT "real.cpp"
6. What I really want is having the report showing line number and file
name from "real.cpp".

Thank you very much for your time and help.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160816/7a5c8f4a/attachment.html>

More information about the llvm-dev mailing list