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); init_code()22void 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 } 54