1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-ipa-sra" } */
3 struct list
4 {
5 struct list *next;
6 int val;
7 };
8 __attribute__ ((noinline))
9 static int reta (int *a)
10 {
11 return *a;
12 }
13 __attribute__ ((noinline))
14 static int
15 kill(struct list *l, int *a)
16 {
17 int v;
18 while (l)
19 {
20 v = l->val;
21 l=l->next;
22 }
23 return reta (a) + v;
24 }
25 int
26 test(struct list *l, int *a)
27 {
28 return kill (l, a);
29 }
30 /* Loop in kill may be infinite; do not SRA. */
31 /* { dg-final { scan-ipa-dump-not "Created new node kill.isra" "sra" } } */