1  /* Testcase by Martin Michlmayr <tbm@cyrius.com> */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O3" } */
       4  
       5  typedef __PTRDIFF_TYPE__ intptr_t;
       6  typedef union lispunion *object;
       7  struct character
       8  {
       9    long e;
      10  };
      11  extern struct symbol Cnil_body;
      12  extern struct symbol Ct_body;
      13  struct vector
      14  {
      15    object *v_self;
      16  };
      17  union lispunion
      18  {
      19    struct vector v;
      20  };
      21  void number_plus (object, object);
      22  void init_code ()
      23  {
      24    object V659;
      25    object _x, _y;
      26    object V643;
      27    intptr_t V648;
      28    unsigned char V653;
      29    object V651;
      30    object V654;
      31    object V658;
      32  
      33  T1240:
      34  if (V648 >= (intptr_t)V651)
      35      goto T1243;
      36    V653 = ((char *) V654->v.v_self)[V648];
      37    V659 = (object) V654 + V653;
      38  T1261:
      39    V658 =
      40      (object)
      41       V659 ? (object) & Ct_body : (object) & Cnil_body;
      42    if (V658 == (object) & Cnil_body)
      43      goto T1249;
      44    goto T1224;
      45  T1249:
      46    V648 = (intptr_t) V648 + 1;
      47    goto T1240;
      48  T1243:
      49    V643 = (object) & Cnil_body;
      50  T1224:
      51    _y = V643;
      52    number_plus (_x, _y);
      53  }