Use symbolic names instead of magic values for the position parameter of get_irn_n().
[libfirm] / ir / be / test / RegallocBug.c
1 #include <stdio.h>
2 #include <string.h>
3
4 struct Arr2Object {
5     int a[10];
6     int inrom[10];
7     int b[10];
8 } arr_init = {
9   { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 },
10   { 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 },
11   { 1000, 1001 , 1002, 1003, 1004 , 1005, 1006, 1007, 1008, 1009}
12 };
13
14 struct ArrObject {
15   int num;
16 };
17
18 void ctorArrObject(struct ArrObject *pThis, int i) {
19   pThis->num = i;
20 }
21
22 void f(struct ArrObject *pThis) {
23   printf("num is %d\n", pThis->num);
24 }
25
26 static void pass_array_test(struct ArrObject *a, int a_len)
27 {
28   int i;
29
30   for(i = 0; i < a_len; i++) {
31     f(&a[i]);
32   }
33 }
34
35 #define length(a)       (sizeof(a)/sizeof((a)[0]))
36
37 int main(int argc, char *argv[]) {
38   int i, j, bi;
39   struct ArrObject ao[10];
40   struct Arr2Object a2o[2];
41   struct Arr2Object a2;
42
43   (void) argc;
44   (void) argv;
45   for(i = 0; i < length(ao); i++)
46     ctorArrObject(&ao[i], i);
47
48   for(i = 0; i < 10; i++) {
49     f(&ao[i]);
50   }
51
52   pass_array_test(ao, length(ao));
53
54   for(i = 0; i < length(a2o); i++)
55     memcpy(&a2o[i], &arr_init, sizeof(arr_init));
56
57   for(i = 0; i < length(a2o[0].a); i++) {
58     memcpy(&a2, &a2o[0], sizeof(a2));
59     j = a2.a[i];
60     printf("%d\n", j);
61   }
62
63   a2o[0].a[5] = 4711;
64
65   for(i = 0; i < length(a2o[0].a); i++) {
66     printf("%d\n", a2o[0].a[i]);
67   }
68   for(i = 0; i < length(a2o[1].a); i++) {
69     printf("%d\n", a2o[1].a[i]);
70   }
71
72   for(i = 0; i < length(a2o[0].b); i++) {
73     memcpy(&a2, &a2o[0], sizeof(a2));
74     bi = a2.b[i];
75     printf("%d\n", bi);
76   }
77
78   for(i = 0; i < 10; i++) {
79     printf("%d\n", arr_init.inrom[i]);
80   }
81   return 0;
82 }