LWG 3035. std::allocator's constructors should be constexpr
[official-gcc.git] / gcc / testsuite / gcc.dg / ipa / ipcp-cstagg-5.c
blob56d544e5a64e5bae70e78246e432dbab86ed36a7
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;
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
23 sq (int x)
25 return x * x;
28 static const S s = {16, sq};
30 int
31 h (int x)
33 return foo (s, x);
36 /* { dg-final { scan-ipa-dump "Discovered an indirect call to a known target" "cp" } } */
37 /* { dg-final { scan-ipa-dump-times "Discovered an indirect call to a known target" 3 "cp" } } */