https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100751
--- Comment #16 from Gejoe <gejoed at rediffmail dot com> --- Created attachment 50881 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50881&action=edit sample-prog.c edited to show __gcov_reset call. The steps used for compiling and running the attached .c file are as follows: gcc -v -save-temps -fprofile-arcs -ftest-coverage sample-prog.c gcc -fprofile-arcs -ftest-coverage sample-prog.o ./a.out The output of a.out run is : __gcov_dump() invoked! __gcov_reset() invoked! __gcov_dump() invoked! __gcov_reset() invoked! $ gcov sample-prog.c sample-prog.c:source file is newer than notes file 'sample-prog.gcno' (the message is displayed only once per source file) File 'sample-prog.c' Lines executed:83.33% of 18 Creating 'sample-prog.c.gcov' $ cat sample-prog.c.gcov -: 0:Source:sample-prog.c -: 0:Graph:sample-prog.gcno -: 0:Data:sample-prog.gcda -: 0:Runs:2 -: 0:Programs:1 -: 0:Source is newer than graph -: 1:#include <stdio.h> -: 2:#include <ctype.h> -: 3:#include <unistd.h> -: 4: -: 5:extern void __gcov_reset(void); -: 6:extern void __gcov_flush(void); -: 7:extern void __gcov_dump( void); -: 8: 2: 9:int main() -: 10:{ -: 11: unsigned char c; 2: 12: int count=0; 2: 13: c = 'g'; -: 14: -: 15: do { -: 16: -: 17: if(c == 'g'){ -: 18: __gcov_dump(); 20: 19: printf("__gcov_dump() invoked!\n"); 4: 20: c = 'r'; #####: 21: } #####: 22: else if(c == 'r'){ -: 23: __gcov_reset(); 16: 24: printf("__gcov_reset() invoked!\n"); #####: 25: c = 'f'; 4: 26: } 4: 27: if(count == 2) -: 28: c = 'g'; 20: 29: else if (count > 10) 2: 30: c = 'e'; 18: 31: count++; 2: 32: }while(c != 'e'); 20: 33: 20: 34: return 0; -: 35:}