c++: prev declared hidden tmpl friend inst [PR112288]
[official-gcc.git] / gcc / testsuite / gcc.dg / ipa / ipa-sra-18.c
blob3217b612231a2f10bded06a41adbea3f2d361c9c
1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-ipa-sra" } */
4 struct S
6 long a, b;
7 };
9 extern void leaf_a (int );
10 extern void leaf_b (int, int);
11 extern void leaf_c (int, int);
13 extern void leaf_sa (struct S);
15 static void baz (int i, int j, int k, int l, struct S a, struct S b);
17 extern int gi;
19 static void __attribute__((noinline))
20 foo (int i, int j, int k, int l, struct S a, struct S b)
22 gi += l;
23 baz (i, j, k, l, a, b);
26 static void __attribute__((noinline))
27 bar (int i, int j, int k, int l, struct S a, struct S b)
29 foo (i, j, k, l, a, b);
30 leaf_sa (b);
34 static void __attribute__((noinline))
35 baz (int i, int j, int k, int l, struct S a, struct S b)
37 if (--k)
38 bar (i, j, k, l, a, b);
39 leaf_b (i, k);
42 void
43 entry (int i, int j, int k, int l, struct S a, struct S b)
45 foo (i, j, k, l, a, b);
48 /* { dg-final { scan-ipa-dump-times "Will remove parameter 1" 3 "sra" } } */
49 /* { dg-final { scan-ipa-dump-times "Will remove parameter 4" 3 "sra" } } */