1 /* Testcase derived from gcc.c-torture/execute 20050826-2.c
2 which showed jump threading profile insanities. */
3 /* { dg-options "-Ofast -fdump-tree-dom2-all" } */
7 unsigned short rta_len
;
8 unsigned short rta_type
;
11 __attribute__ ((noinline
))
12 int inet_check_attr (void *r
, struct rtattr
**rta
)
16 for (i
= 1; i
<= 14; i
++)
18 struct rtattr
*attr
= rta
[i
- 1];
21 if (attr
->rta_len
- sizeof (struct rtattr
) < 4)
24 rta
[i
- 1] = attr
+ 1;
30 extern void abort (void);
36 struct rtattr
*rta
[14];
39 rt
[0].rta_len
= sizeof (struct rtattr
) + 8;
42 for (i
= 0; i
< 14; i
++)
44 if (inet_check_attr (0, rta
) != 0)
46 for (i
= 0; i
< 14; i
++)
47 if (rta
[i
] != &rt
[i
!= 7 && i
!= 8])
49 for (i
= 0; i
< 14; i
++)
54 if (inet_check_attr (0, rta
) != -22)
56 for (i
= 0; i
< 14; i
++)
57 if (i
== 1 && rta
[i
] != 0)
59 else if (i
!= 1 && i
<= 5 && rta
[i
] != &rt
[1])
61 else if (i
> 5 && rta
[i
] != &rt
[0])
75 /* { dg-final-use-not-autofdo { scan-tree-dump-not "Invalid sum" "dom2"} } */