2 /* { dg-options "-O2 -fipa-sra -fdump-ipa-sra" } */
4 /* Check of a recursive by-reference structure split. The recursive functions
5 have to be pure right from the start, otherwise the current AA would detect
6 possible modification of data. */
15 void __attribute__((noipa
))
16 check (float r
, int g
, int g2
)
18 if (r
< 7.39 || r
> 7.41
24 static int __attribute__((noinline
, pure
)) bar (struct S
*s
, int rec
);
27 __attribute__((noinline
, pure
))
28 foo (struct S
*s
, int rec
)
33 check (s
->red
, s
->green
, s
->green
);
38 __attribute__((noinline
, pure
))
39 bar (struct S
*s
, int rec
)
48 main (int argc
, char **argv
)
60 /* { dg-final { scan-ipa-dump-times "Will split parameter" 2 "sra" } } */
61 /* { dg-final { scan-ipa-dump-times "component at byte offset" 4 "sra" } } */