https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123068
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |hubicka at gcc dot gnu.org
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
int a, b, c;
signed char d;
void
foo ()
{
for (; d;)
{
for (int f = 0; f <= 1; f++)
for (int g = 0; g <= 1; g++)
for (int h = 0; h <= 1; h++)
if (h)
return;
a = c / b;
}
}
int
main ()
{
}
What I see is that the IPA profile pass creates the
__gcov7.foo/12 (__gcov7.foo)
__gcov3.foo/11 (__gcov3.foo)
__gcov0.foo/10 (__gcov0.foo)
vars, but the __gcov3.foo one is reclaimed
Reclaiming variables: __gcov3.foo/11
and not used from anywhere but the __gcov_.foo variable.
So, it is not emitted into assembly, but the reference in __gcov_.foo remains.