http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58602

            Bug ID: 58602
           Summary: .gcno files not truncated at gcov_close
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: gcov-profile
          Assignee: unassigned at gcc dot gnu.org
          Reporter: laurent.alfonsi at st dot com

Created attachment 30950
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30950&action=edit
script to reproduce

Gcc doesnot clean the .gcno file before writing in. Thus, it might contain
garbage at the end.

At one point, it was truncated, but this has been removed.
  http://gcc.gnu.org/ml/gcc-patches/2004-07/msg02541.html

Test case : 
 $ rm test.gcno 
 $ gcc -ftest-coverage -fprofile-arcs test.c -O3
 $ ls -la test.gcno 
 -rw-r--r-- 1 alfonsi gnbcomp 688 Oct  3 11:57 test.gcno

 $ gcc -ftest-coverage -fprofile-arcs test.c -O0
 $ ls -la test.gcno 
 -rw-r--r-- 1 alfonsi gnbcomp 908 Oct  3 11:57 test.gcno

 $ gcc -ftest-coverage -fprofile-arcs test.c -O3
 $ ls -la test.gcno 
 -rw-r--r-- 1 alfonsi gnbcomp 908 Oct  3 11:58 test.gcno

As you may see, the last 220 bytes are garbage from the preceding O0
compilation.

I enclosed a small script that expose the problem.

This has been trackeddown from a kernel issue on lcov:
  http://sourceforge.net/p/ltp/mailman/message/31141937/

Reply via email to