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

            Bug ID: 82633
           Summary: gcov does not handle removed functions
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: gcov-profile
          Assignee: unassigned at gcc dot gnu.org
          Reporter: marxin at gcc dot gnu.org
                CC: marxin at gcc dot gnu.org
  Target Milestone: ---

For following test-case:

class MyClass2
{
  public:
    void iterate() { a = 5; }

    int a;
};

int main()
{
  MyClass2 a;
  return 0;
}

We wrongly don't identify that function iterate has no executions:
        -:    1:class MyClass2
        -:    2:{
        -:    3:  public:
        -:    4:    void iterate() { a = 5; }
        -:    5:
        -:    6:    int a;
        -:    7:};
        -:    8:
        1:    9:int main()
        -:   10:{
        -:   11:  MyClass2 a;
        1:   12:  return 0;
        -:   13:}

It's caused by fact that it's removed from cgraph:
removed.cpp.000i.cgraph:Removing unused symbols: void MyClass2::iterate()

Reply via email to