[kernel] Parsing share/libc/__fc_builtin_for_normalization.i (no preprocessing)
[kernel] Parsing tests/rte/assign.c (with preprocessing)
[rte] annotating function rte
tests/rte/assign.c:37:[kernel] warning: Neither code nor specification for function fnd4, generating default assigns from the prototype
/* Generated by Frama-C */
int global_x;
int global_y;
/*@ assigns \nothing; */
extern void g();

/*@ assigns \nothing; */
extern int fnd1();

/*@ assigns global_x; */
extern int fnd2();

/*@ assigns global_x, global_y; */
extern int fnd3();

/*@ assigns \result;
    assigns \result \from \nothing; */
extern int fnd4();

/*@ assigns global_x;
    
    behavior normal:
      assumes cond ≢ 0;
      assigns \nothing;
    
    behavior other:
      assumes cond ≡ 0;
      assigns global_x;
 */
extern int fnd5(int cond);

/*@ assigns \nothing; */
extern int fnd6();

/*@ assigns *x;
    assigns *x \from *y; */
extern int fnd7(int *x, int *y);

int rte(int cond)
{
  int __retres;
  int a;
  int b;
  int tmp;
  /*@ behavior pre_g:
        assigns \nothing; */
  g();
  /*@ behavior pre_fnd1:
        assigns tmp; */
  tmp = fnd1();
  if (tmp) {
    int tmp_0;
    /*@ behavior pre_fnd2:
          assigns tmp_0, global_x; */
    tmp_0 = fnd2();
    if (tmp_0) {
      int tmp_1;
      /*@ behavior pre_fnd3:
            assigns tmp_1, global_x, global_y; */
      tmp_1 = fnd3();
      if (tmp_1) {
        int tmp_2;
        /*@ behavior pre_fnd4:
              assigns tmp_2;
              assigns tmp_2 \from \nothing;
        */
        tmp_2 = fnd4();
        if (tmp_2) {
          int tmp_3;
          /*@ behavior pre_fnd5:
                assigns tmp_3, global_x;
              
              behavior pre_fnd5_normal:
                assumes cond ≢ 0;
                assigns tmp_3;
              
              behavior pre_fnd5_other:
                assumes cond ≡ 0;
                assigns tmp_3, global_x;
          */
          tmp_3 = fnd5(cond);
          if (tmp_3) {
            int tmp_4;
            /*@ behavior pre_fnd6:
                  assigns tmp_4; */
            tmp_4 = fnd6();
            if (tmp_4) {
              int tmp_5;
              /*@ behavior pre_fnd7:
                    assigns tmp_5, a;
                    assigns a \from b; */
              tmp_5 = fnd7(& a,& b);
              if (tmp_5) {
                __retres = 1;
                goto return_label;
              }
              else {
                __retres = 0;
                goto return_label;
              }
            }
            else {
              __retres = 0;
              goto return_label;
            }
          }
          else {
            __retres = 0;
            goto return_label;
          }
        }
        else {
          __retres = 0;
          goto return_label;
        }
      }
      else {
        __retres = 0;
        goto return_label;
      }
    }
    else {
      __retres = 0;
      goto return_label;
    }
  }
  else {
    __retres = 0;
    goto return_label;
  }
  return_label: return __retres;
}


