https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106251

            Bug ID: 106251
           Summary: gcov indicates actually executed line as not covered
                    by the test
           Product: gcc
           Version: 9.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: olgierd.sobinski at nokia dot com
  Target Milestone: ---

Created attachment 53285
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53285&action=edit
false miscoverage

Hello,

Using gcov we found an incorrect detection of 'missing line coverage':
If the "return std::tie(" is separate line it is not detected as covered by the
test(even though it is in fact).
It the "return std::tie(" is followed by arguments in the same line then all is
fine. Please also see the attachment.

// false 'miscoverage' case:
inline bool operator==(const DrbInfo& lhs, const DrbInfo& rhs)
{
    return std::tie(
        lhs.drbIdentity, lhs.pduSessionFwdTunnelStatus, lhs.bearerIndex,
lhs.pdcpBearerGroup, lhs.defaultDrb) ==
        std::tie(rhs.drbIdentity, rhs.pduSessionFwdTunnelStatus,
rhs.bearerIndex, rhs.pdcpBearerGroup, rhs.defaultDrb);
}

// OK case
inline bool operator==(const DrbInfo& lhs, const DrbInfo& rhs)
{
    return std::tie(lhs.drbIdentity, lhs.pduSessionFwdTunnelStatus,
lhs.bearerIndex, lhs.pdcpBearerGroup, lhs.defaultDrb) ==
        std::tie(rhs.drbIdentity, rhs.pduSessionFwdTunnelStatus,
rhs.bearerIndex, rhs.pdcpBearerGroup, rhs.defaultDrb);
}

Thx in advance for checking/info if fixed in subsequent gcc versions!

br,
Olgierd
  • [Bug c++/106251] New: gcov ... olgierd.sobinski at nokia dot com via Gcc-bugs

Reply via email to