https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105171
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |WONTFIX Status|UNCONFIRMED |RESOLVED --- Comment #17 from Andrew Pinski <pinskia at gcc dot gnu.org> --- The stamp value is used to synchronize note and data files and to synchronize merging within a data file. It need not be an absolute time stamp, merely a ticker that increments fast enough and cycles slow enough to distinguish different compile/run/compile cycles. So unlinking the da file is ok as it will be merged (remove data) correctly anyways. I think you are reading the comment in coverage.cc incorrectly. /* Only remove the da file, if we're emitting coverage code and cannot uniquely stamp it. If we can stamp it, libgcov will DTRT. */ Basically the unlink is there just in case we can't uniquely stamp the da file and do another compile that was already there. That is it will be emptied out when the program is run with a different timestamp; removing the file while compiling is just in case so you don't get mix matched results. Again there is no need to fix this.