1 /* { dg-do compile } */ 2 /* { dg-options "-O2 -fipa-sra -fdump-tree-eipa_sra-slim" } */ 3 /* { dg-require-effective-target non_strict_align } */ 4 5 struct bovid 6 { 7 float a; 8 int b; 9 struct bovid *next; 10 }; 11 12 static int 13 __attribute__((noinline)) foo(struct bovid * cow,int i)14foo (struct bovid *cow, int i) 15 { 16 i++; 17 if (cow->next) 18 foo (cow->next, i); 19 return i; 20 } 21 main(int argc,char * argv[])22int main (int argc, char *argv[]) 23 { 24 struct bovid cow; 25 26 cow.a = 7.4; 27 cow.b = 6; 28 cow.next = (struct bovid *) 0; 29 30 return foo (&cow, 0); 31 } 32 33 /* { dg-final { scan-tree-dump-times "foo " 1 "eipa_sra" } } */ 34