/* { dg-do compile } */ | |
/* { dg-options "-O2 -fdump-ipa-icf" } */ | |
struct A | |
{ | |
int a, b, c; | |
}; | |
struct B | |
{ | |
int x, y; | |
}; | |
__attribute__ ((noinline)) | |
int foo(struct A *a) | |
{ | |
a->c = 1; | |
return 123; | |
} | |
__attribute__ ((noinline)) | |
int bar(struct B *b) | |
{ | |
b->y = 1; | |
return 123; | |
} | |
int main() | |
{ | |
return foo(0) + bar(0); | |
} | |
/* { dg-final { scan-ipa-dump-not "Semantic equality hit:" "icf" } } */ | |
/* { dg-final { scan-ipa-dump "Equal symbols: 0" "icf" } } */ |