[kernel] Parsing share/libc/__fc_builtin_for_normalization.i (no preprocessing)
[kernel] Parsing tests/rte/array_index.c (with preprocessing)
[rte] annotating function main
/* Generated by Frama-C */
struct s_arr {
   int t[15] ;
};
struct __anonstruct_s_1 {
   int u[12] ;
};
struct _s {
   int t[15] ;
   struct __anonstruct_s_1 s ;
   struct s_arr v[12] ;
};
typedef struct _s ts;
int t[10];
int u[11];
int v[16][17];
ts s;
unsigned int c[10];
void main(int i, int j, unsigned int k)
{
  t[0] = 0;
  u[1] = 0;
  v[2][3] = 0;
  /*@ assert rte: mem_access: \valid(&s.t[1]); */
  s.t[1] = 0;
  /*@ assert rte: mem_access: \valid(&s.s.u[2]); */
  s.s.u[2] = 0;
  /*@ assert rte: mem_access: \valid(&s.v[3].t[4]); */
  s.v[3].t[4] = 0;
  /*@ assert rte: index_bound: 0 ≤ i; */
  /*@ assert rte: index_bound: i < 10; */
  t[i] = 0;
  /*@ assert rte: index_bound: 0 ≤ i; */
  /*@ assert rte: index_bound: i < 11; */
  u[i] = 0;
  /*@ assert rte: index_bound: 0 ≤ i; */
  /*@ assert rte: index_bound: i < 16; */
  /*@ assert rte: index_bound: 0 ≤ j; */
  /*@ assert rte: index_bound: j < 17; */
  v[i][j] = 0;
  /*@ assert rte: mem_access: \valid(&s.t[i]); */
  s.t[i] = 0;
  /*@ assert rte: mem_access: \valid(&s.s.u[i]); */
  s.s.u[i] = 0;
  /*@ assert rte: mem_access: \valid(&s.v[i].t[j]); */
  s.v[i].t[j] = 0;
  /*@ assert rte: index_bound: k < 10; */
  t[k] = 0;
  /*@ assert rte: index_bound: k < 11; */
  u[k] = 0;
  /*@ assert rte: index_bound: k < 16; */
  /*@ assert rte: index_bound: c[k] < 17; */
  /*@ assert rte: index_bound: k < 10; */
  v[k][c[k]] = 0;
  /*@ assert rte: mem_access: \valid(&s.t[k]); */
  s.t[k] = 0;
  /*@ assert rte: mem_access: \valid(&s.s.u[k]); */
  s.s.u[k] = 0;
  /*@ assert rte: mem_access: \valid(&s.v[k].t[c[k]]); */
  /*@ assert rte: index_bound: k < 10; */
  s.v[k].t[c[k]] = 0;
  return;
}


