https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83678
--- Comment #1 from Yibiao Yang <yangyibiao at nju dot edu.cn> --- simpler reproducer: void main() { while (1) { int a; &a; if (0) break; if (1) break; } } $ gcc-8 small.c -fprofile-arcs -ftest-coverage; ./a.out gcov-8 small.c; cat small.c.gcov -: 0:Source:small.c -: 0:Graph:small.gcno -: 0:Data:small.gcda -: 0:Runs:1 -: 0:Programs:1 1: 1:void main() { -: 2: while (1) { -: 3: int a; -: 4: &a; -: 5: if (0) 1: 6: break; -: 7: if (1) 1: 8: break; -: 9: } 1: 10:} Line #6 is wrongly marked as executed.