1typedef int *loop_p;
2typedef struct VEC_loop_p_base
3{
4  unsigned num;
5  loop_p vec[1];
6}
7VEC_loop_p_base;
8
9__inline__ int
10VEC_loop_p_base_iterate (const VEC_loop_p_base * vec_, unsigned ix_,
11			 loop_p * ptr)
12{
13  if (vec_ && ix_ < vec_->num)
14    {
15      *ptr = vec_->vec[ix_];
16      return 1;
17    }
18  else
19    {
20      return 0;
21    }
22}
23
24typedef struct VEC_loop_p_heap
25{
26  VEC_loop_p_base base;
27}
28VEC_loop_p_heap;
29
30
31static __inline__ int
32am_vector_index_for_loop (VEC_loop_p_heap * loop_nest, int loop_num)
33{
34  int i;
35  loop_p l;
36
37  for (i = 0;
38       VEC_loop_p_base_iterate ((loop_nest) ? &(loop_nest)->base : 0, i,
39				&(l)); i++)
40    if (l == loop_num)
41      return i;
42
43  __builtin_unreachable ();
44}
45
46unsigned char
47build_access_matrix (unsigned max)
48{
49  unsigned i;
50  for (i = 0; i < max; i++)
51    {
52      if (am_vector_index_for_loop (foo (), 0))
53	return 0;
54    }
55}
56