2018-05-15 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / gcc.dg / ipa / ipa-sra-3.c
blob23dec2a661ec00ac7bc303e7c20b36aedc58a269
1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fipa-sra -fdump-tree-eipa_sra-details" } */
4 struct bovid
6 float red;
7 int green;
8 void *blue;
9 };
11 extern void foo (float, void *, void *, long);
13 static int
14 __attribute__((noinline))
15 ox (struct bovid cow, int z, struct bovid calf, long l)
17 foo (cow.red, cow.blue, cow.blue, l);
18 return 0;
21 void caller (void)
23 struct bovid cow, calf;
25 cow.red = 7.4;
26 cow.green = 6;
27 cow.blue = &cow;
29 calf.red = 8.4;
30 calf.green = 5;
31 calf.blue = &cow;
33 ox (cow,4,calf,2);
34 return;
37 /* { dg-final { scan-tree-dump "base: z, remove_param" "eipa_sra" } } */
38 /* { dg-final { scan-tree-dump "base: calf, remove_param" "eipa_sra" } } */