libcpp, c, middle-end: Optimize initializers using #embed in C
[official-gcc.git] / gcc / testsuite / gcc.dg / ipa / pr103227-3.c
bloba48026d1b9589105128ad9acc32795a283db0a4d
1 /* { dg-do run } */
2 /* { dg-options "-O2 -fno-tree-fre -fno-tree-sra -fdump-tree-optimized-slim" } */
4 struct S
6 int a, b, c;
7 };
9 volatile int z1;
10 int z2 = 44;
12 void __attribute__((noipa))
13 use_int (int c)
15 z1 = c;
18 static void __attribute__ ((noinline))
19 bar (struct S s)
21 use_int (s.c);
25 static void __attribute__ ((noinline))
26 foo (struct S s)
28 int c = s.c;
29 if (c != 21)
30 use_int (c);
32 s.c = z2;
33 bar (s);
34 if (s.c != 44)
35 __builtin_abort ();
38 int
39 main (void)
41 struct S s;
42 s.a = 1;
43 s.b = 64;
44 s.c = 21;
45 foo (s);
46 return 0;
52 /* { dg-final { scan-tree-dump-not "ellide" "optimized" } } */