blob: 5dc0062bbe5c16671ad142dffaa7521ce2e052d0 [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-ipa-icf-optimized" } */
void destroy (void)
{
}
void remove (void)
{
}
struct callbacks
{
void (*success) (void);
void (*error) (void);
};
struct callbacks my_callbacks;
__attribute__ ((noinline))
void foo()
{
my_callbacks.success = destroy;
}
__attribute__ ((noinline))
void bar()
{
my_callbacks.success = remove;
}
int main()
{
foo();
bar();
return 0;
}
/* { dg-final { scan-ipa-dump "Semantic equality hit:destroy/\[0-9+\]+->remove/\[0-9+\]+" "icf" } } */
/* { dg-final { scan-ipa-dump "Equal symbols: 1" "icf" } } */