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()