[PATCH] D157110: llvm-cov: __cxx_global_var_init functions disrupt coverage

Justin Bogner via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 14 16:02:23 PDT 2023


bogner added a comment.

If the right answer is to skip functions that don't have line info we should probably do that in `Context::print` where we loop over `file.functions` or maybe just at the beginning of `collectFunction` - doing this on a per block basis inside of the function doesn't really make sense.

That said, I think there needs to be a bit more investigation here, because the fact that there's a block implies we have debug information that should be meaningful. A couple of ideas for where to look to see if we can get a better idea of what's going on:

- Do `f.file` and `f.getFilename()` make sense given what you see in `si`?
- Is something going wrong in `GCOVFile::readGCNO` when we're handling `GCOV_TAG_BLOCKS`, such that we're associating a block with the wrong function or something?
- Is the data in the .gcno file itself corrupt?
- Is the .gcno a newer version of the format that adds new information in a way that we don't handle it?


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D157110/new/

https://reviews.llvm.org/D157110



More information about the llvm-commits mailing list