OSDN Git Service

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