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
      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  }