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 
5 typedef struct A
6 {
7   struct A *s, *t;
8   unsigned int u;
9 } A;
10 
11 void bar (A *);
12 
13 void
foo(A * x,A * y,A * z)14 foo (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