https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83878
Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |RESOLVED
      Known to work|                            |8.1.0, 9.0
         Resolution|---                         |FIXED
      Known to fail|                            |7.3.0

--- Comment #3 from Martin Liška <marxin at gcc dot gnu.org> ---
(In reply to Marco Castelluccio from comment #2)
> Created attachment 44267 [details]
> Archive with GCNO, GCDA, source file and GCOV output
> 
> Sorry for replying late, but I just managed to find a reproducible small
> test case.
> 
> g++ --coverage -fno-exceptions -O0 main.cpp
> ./a.out
> gcov -u -b -c main.cpp
> 
> The relevant part is:
> > function main called 1 returned 100% blocks executed 94%
> >         1:   24:int main(void)
> >         -:   25:{
> >         2:   26:  Ciao ciao;
> > call    0 returned 1
> > call    1 returned 1
> > unconditional  2 taken 1
> >         -:   27:
> >         1:   28:  ciao.setName("Marco");
> 
> Line 26 is clearly executed once, but gcov shows it as executed twice. The
> same happens if you have an if block where you call a constructor.

Sorry for overlooking the test-case. It's fixed in r247374 where I improved
gcov locations. It's part of GCC 8.1. Please update to it. No plans to backport
that.

Reply via email to