Files
clang-p2996/llvm/test/tools/llvm-cov/Inputs
Yuta Saito bf8f5cc9b5 Reland: [llvm-cov][WebAssembly] Read __llvm_prf_names from data segments (#112569)
On WebAssembly, most coverage metadata contents read by llvm-cov (like
`__llvm_covmap` and `__llvm_covfun`) are stored in custom sections
because they are not referenced at runtime. However, `__llvm_prf_names`
is referenced at runtime by the profile runtime library and is read by
llvm-cov post-processing tools, so it needs to be stored in a data
segment, which is allocatable at runtime and accessible by tools as long
as "name" section is present in the binary.

This patch changes the way llvm-cov reads `__llvm_prf_names` on
WebAssembly. Instead of looking for a section, it looks for a data
segment with the same name.

This reverts commit 157f10ddf2 and fixes
PE/COFF `.lprfn$A` section handling.
2024-10-24 12:52:50 +09:00
..

These inputs were pre-generated to allow for easier testing of llvm-cov.

The files used to test the gcov compatible code coverage tool were generated
using the following method:

  test.gcno and test.gcda were create by running clang:
    clang++ -g -ftest-coverage -fprofile-arcs test.cpp

  test.cpp.gcov was created by running gcov 4.2.1:
    gcov test.cpp

The 'covmapping' files that are used to test llvm-cov contain raw sections
with the coverage mapping data generated by the compiler and linker. They are
created by running clang and llvm-cov:
  clang++ -fprofile-instr-generate -fcoverage-mapping -o test test.cpp
  llvm-cov convert-for-testing -o test.covmapping test

The 'profdata' files were generated by running an instrumented version of the
program and merging the raw profile data using llvm-profdata.
  ./test
  llvm-profdata merge -o test.profdata default.profraw