1 /* { dg-require-alias "" } */
2 /* { dg-options "-O2 -fcommon -fdump-ipa-icf-details" } */
3 /* { dg-skip-if "Can align g more than f" { cris-*-* } } */
4
5 int a, b, c, d, e, h, i, j, k, l;
6 const int f;
7 static int g;
8
9 void fn1 (int p1)
10 {
11 k = d ? c % k : a * b;
12 h &= j ^ i ^ 1;
13 }
14
15 int main ()
16 {
17 const int *m = &f, **n = &m;
18 l && (*n = &e);
19 if (m != &f)
20 __builtin_abort ();
21 fn1 (g);
22 return 0;
23 }
24
25 /* { dg-final { scan-ipa-dump "Equal symbols: 1" "icf" } } */
26 /* { dg-final { scan-ipa-dump "Not unifying; alias cannot be created; target is discardable" "icf" } } */