https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71672
--- Comment #4 from Martin Liška <marxin at gcc dot gnu.org> --- Another objections is that speculative devirtualization is responsible for wrong data. However having a simple test-case: int counter = 0; class A { public: virtual void foo () { counter++; } }; int main() { A *a = new A(); for (unsigned i = 0; i < 100 * 1000 * 1000; i++) a->foo (); } I still can't see any callsites for function main. Debugging create_gcov would be necessary I guess.