[kernel] Parsing share/libc/__fc_builtin_for_normalization.i (no preprocessing)
[kernel] Parsing tests/rte/fptr_assert.c (with preprocessing)
[rte] annotating function f
[rte] annotating function g
[rte] annotating function h
[rte] annotating function main
tests/rte/fptr_assert.c:21:[rte] warning: ((*fp1)();) function called through a pointer: not treated
tests/rte/fptr_assert.c:21:[rte] warning: no predicate available yet to check validity of function pointer dereferencing *fp1
tests/rte/fptr_assert.c:22:[rte] warning: ((*fp2)(3);) function called through a pointer: not treated
tests/rte/fptr_assert.c:22:[rte] warning: no predicate available yet to check validity of function pointer dereferencing *fp2
tests/rte/fptr_assert.c:23:[rte] warning: ((*(ma[1]))(5);) function called through a pointer: not treated
tests/rte/fptr_assert.c:23:[rte] warning: no predicate available yet to check validity of function pointer dereferencing *(ma[1])
tests/rte/fptr_assert.c:24:[rte] warning: ((*(ma[i]))(5);) function called through a pointer: not treated
tests/rte/fptr_assert.c:24:[rte] warning: no predicate available yet to check validity of function pointer dereferencing *(ma[i])
/* Generated by Frama-C */
typedef int (*fptr)(int );
void g(void)
{
  return;
}

int f(int x)
{
  return x;
}

int h(int x)
{
  return x;
}

int main(int i)
{
  int __retres;
  void (*fp1)();
  int (*fp2)(int );
  fptr ma[2];
  { /* sequence */
    ;
    ;
  }
  ma[0] = & f;
  ma[1] = & h;
  fp1 = (void (*)())(& g);
  fp2 = & f;
  (*fp1)();
  (*fp2)(3);
  (*(ma[1]))(5);
  /*@ assert rte: index_bound: 0 ≤ i; */
  /*@ assert rte: index_bound: i < 2; */
  (*(ma[i]))(5);
  __retres = 0;
  return __retres;
}


