modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/compile/20090917-1.c (about)

     1  typedef int *loop_p;
     2  typedef struct VEC_loop_p_base
     3  {
     4    unsigned num;
     5    loop_p vec[1];
     6  }
     7  VEC_loop_p_base;
     8  
     9  __inline__ int
    10  VEC_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  
    24  typedef struct VEC_loop_p_heap
    25  {
    26    VEC_loop_p_base base;
    27  }
    28  VEC_loop_p_heap;
    29  
    30  
    31  static __inline__ int
    32  am_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  
    46  unsigned char
    47  build_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  }