PR middle-end/77357 - strlen of constant strings not folded
[official-gcc.git] / gcc / testsuite / gcc.dg / ipa / ipcp-cstagg-6.c
blob7891082f785da0e845326212ae03492eaecaa879
1 /* { dg-do compile } */
2 /* { dg-options "-O3 -fdump-ipa-cp-details" } */
4 typedef struct S
6 int add_offset;
7 int (*call)(int);
8 } S;
10 extern const S *es, *fs;
12 static int __attribute__((noinline))
13 foo (const S f, int x)
15 es = &f; /* This disables IPA-SRA */
16 x = f.call(x+f.add_offset);
17 x = f.call(x);
18 x = f.call(x);
19 return x;
22 static int __attribute__((noinline))
23 bar (const S f, int x)
25 fs = &f; /* This disables IPA-SRA */
26 return foo (f, x);
29 static int
30 sq (int x)
32 return x * x;
35 static const S s = {16, sq};
37 int
38 h (int x)
40 return bar (s, x);
43 /* { dg-final { scan-ipa-dump-times "Discovered an indirect call to a known target" 3 "cp" } } */