On 11/06/2017 09:21 AM, Eric Botcazou wrote: >> I would probably incline to emit some information to *.gcno file that will >> reflect that we should not report unexecuted blocks. > > I'm a bit reluctant to modify the gcov format, unless your changes did though.
Hello. Yes, I've got patch candidate that's going to change gcov format. Please stream it in coverage_begin_function (coverage.c). > >> However, as I've been reading dump file: >> >> P.Add (const integer i1, const integer i2) >> { >> complex int D.4219; >> integer iftmp.2; >> integer D.4217; >> integer _1; >> complex int _4; >> integer iftmp.2_5; >> integer _6; >> >> <bb 2> [0.00%]: >> _4 = ADD_OVERFLOW (i1_2(D), i2_3(D)); >> _1 = IMAGPART_EXPR <_4>; >> if (_1 != 0) >> goto <bb 3>; [0.00%] >> else >> goto <bb 4>; [0.00%] >> >> <bb 3> [0.00%]: >> .gnat_rcheck_CE_Overflow_Check ("p.adb", 5); >> >> <bb 4> [0.00%]: >> iftmp.2_5 = REALPART_EXPR <_4>; >> _6 = iftmp.2_5; >> >> <L3> [0.00%]: >> return _6; >> >> } >> >> Isn't the <bb 3> some kind of exceptional basic block? > > No, it's just the regular target of the goto just above. > >> Can one find such blocks in middle-end? In case of C++, exceptional blocks >> are not considered for the warning. > > Likewise, but it's a different issue here. > I see. Thanks, Martin