1/* This testcase ICEd when 2 different successors of a basic block
2   were successfully threaded and try_forward_edges was not expecting
3   that.  */
4
5typedef struct A
6{
7  struct A *s, *t;
8  unsigned int u;
9} A;
10
11void bar (A *);
12
13void
14foo (A *x, A *y, A *z)
15{
16  while (y
17	 && (((y && y->t && y->t->u) ? y : z)->t
18	     == ((x && x->t && x->t->u) ? x : z)->t))
19    y = y->s;
20
21  if (y)
22    bar (y);
23}
24