libcpp, c, middle-end: Optimize initializers using #embed in C
[official-gcc.git] / gcc / testsuite / gcc.dg / ipa / ipa-sra-27.c
blobb815e8a83b17011e2942b5d688ecae0811e37f41
1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-ipa-sra-details" } */
4 struct S
6 short a, b, c;
7 };
9 extern int gc;
10 extern int *arr;
12 static void __attribute__((noinline))
13 foo (struct S *p)
15 for (int i = 0; i < gc; i++)
16 arr += p->b;
19 static void __attribute__((noinline))
20 baz (struct S *p)
22 foo (p);
23 gc = p->a + p->c;
26 void
27 bar (short a, short b, short c)
29 struct S s;
30 s.a = a;
31 s.b = b;
32 s.c = c;
33 foo (&s);
34 return;
37 void
38 bar2 (short a, short b, short c)
40 struct S s;
41 s.a = a;
42 s.b = b;
43 s.c = c;
44 baz (&s);
45 return;
48 /* { dg-final { scan-ipa-dump-times "Will split parameter" 2 "sra" } } */