/* { dg-require-alias "" } */ /* { dg-options "-O2 -fcommon -fdump-ipa-icf-details" } */ /* { dg-skip-if "Can align g more than f" { cris-*-* } } */ int a, b, c, d, e, h, i, j, k, l; const int f; static int g; void fn1 (int p1) { k = d ? c % k : a * b; h &= j ^ i ^ 1; } int main () { const int *m = &f, **n = &m; l && (*n = &e); if (m != &f) __builtin_abort (); fn1 (g); return 0; } /* { dg-final { scan-ipa-dump "Equal symbols: 1" "icf" } } */ /* { dg-final { scan-ipa-dump "Not unifying; alias cannot be created; target is discardable" "icf" } } */